AtCoder #ABC 245

AtCoder Beginner Contest 247 (ABC247) 题解 [A-Ex] AtCoder Beginner Contest 247 题解 阅读详情

A Good morning(模拟)

过水

void solve()
{
    int h1, m1, h2, m2;
	cin >> h1 >> m1 >> h2 >> m2;
    if(h1 == h2)
    {
        if(m1 == m2)    puts("Takahashi");
        else if(m1 < m2)    puts("Takahashi");
        else puts("Aoki");
    }
    else if(h1 < h2) puts("Takahashi");
    else puts("Aoki");
}

B Mex(模拟)

过水

void solve()
{
	int n, x;
    cin >> n;
    for(int i = 0; i < n; i++)
        cin >> x, mp[x] = 1;
    
    for(int i = 0; i <= 2000; i++)
        if(mp[i] == 0)  {cout << i << endl; return;}
}

C Choose Elements(DP)

Description:

给定两个数组 a, b
要求构造出一个数组X满足以下要求 
1  X_i = a_i || X_i = b_i
2  abs(X_i - X_i+1) <= k

Solution:

​ 那我们很容易可以想到 这题就是对于当前的i去枚举一下i + 1的两条路是否能够走通

​ 画出一条搜索树 可以得知DFS复杂度 2^n

​ 那我们就考虑一下在搜索的过程中 我们做了那些无用功导致复杂度那么高

​ 简单判断 当一个点不可达的时候 这个点就已经无效了 不需要用它向后拓展了

​ 然后想办法记录当前状态 递推并用bool数组记录下是否可达 最后询问终点的状态即可

​ 那么一个状态DP的雏形就出现了 对于每一个可达点 我们去判断他的下一步的两个点是否可达

Code:

const int N = 200010;
int a[N], b[N];
bool dpa[N], dpb[N]; //a[i]是否可达 b[i]是否可达
 
void solve()
{
	int n, k;
    cin >> n >> k;
    for(int i = 1; i <= n; i++)
        cin >> a[i];
    for(int i = 1; i <= n; i++)
        cin >> b[i];
    
    dpa[1] = true;
    dpb[1] = true;
 
    for(int i = 1; i <= n - 1; i++)
    {
        if(dpa[i])
        {
            if(abs(a[i + 1] - a[i]) <= k)   dpa[i + 1] = true;
            if(abs(b[i + 1] - a[i]) <= k)   dpb[i + 1] = true;
        }
        if(dpb[i])
        {
            if(abs(a[i + 1] - b[i]) <= k)   dpa[i + 1] = true;
            if(abs(b[i + 1] - b[i]) <= k)   dpb[i + 1] = true;
        }
    }
 
    if(dpa[n] || dpb[n])    cout << "Yes" << endl;
    else cout << "No" << endl;
}

D Polynomial division(多项式除法 + 模拟)

Description:

​ 给出两个多项式 求其商

Solution:

​ 模拟竖式计算 重要的是因为小心/0的情况

Code:

void solve()
{
	int n, m;
	cin >> n >> m;
	vector<int> a(n + 1), c(n + m + 1), b(m + 1);
	for(int i = 0; i <= n; i++)
		cin >> a[i];
	for(int i = 0; i <= n + m; i++)
		cin >> c[i];
	
	for(int i = m; i >= 0; i --) //枚举b的同时也是枚举c的[n + 1, c + m + 1]
	{
	    b[i] = c[n + i] / a[n];
	    for(int j = 0; j <= n; j++)
	        c[i + j] -= b[i] * a[j];
 	}
	for(auto x : b) cout << x << ' ';
	cout << endl;
}

E Wrapping Chocolate(排序 + 二分)

Description:

​ 给出n个巧克力 m个盒子 当盒子的长和宽都大于等于巧克力的时候(长和宽不能颠倒) 可以装下巧克力 请问是否能装下所有的巧克力

Solution:

​ 因为N=2e5 应该是要用一个nlog的做法过掉 然后又跟大小有关系 于是我就打算往排序想

​ 对巧克力和盒子都小到大排序 然后双指针判断 然后一直写挂

​ 总感觉应该是枚举漏了情况 思维不够紧密

​ 正解是 以宽大到小排序 用multiset存下 宽大于等于当前巧克力的box 然后在集合里二分查找第一个长度大于等于巧克力长度的盒子 若找不到 证明后面当前巧克力无法放入任何盒子中 失败

Code:

void solve()
{
	int n, m;
    cin >> n >> m;
 
    vector<array<int,2> > box(m), a(n);
    for(int i = 0; i < n; i++)
        cin >> a[i][0];
    for(int i = 0; i < n; i++)
        cin >> a[i][1];
    for(int i = 0; i < m; i++)
        cin >> box[i][0];
    for(int i = 0; i < m; i++)
        cin >> box[i][1];
 
    sort(a.begin(), a.end(), greater());
    sort(box.begin(), box.end(), greater());
 
    multiset<int> s; //存长度
    for(int i = 0, j = 0; i < n; i ++) //遍历巧克力
    {
        while(j < m && box[j][0] >= a[i][0]) //当宽度大于等于当前巧克力
        {
            s.insert(box[j][1]);
            j ++;
        }
        auto it = s.lower_bound(a[i][1]);
        if(it == s.end())   //因为在当前大于等于巧克力宽度的box里都找不到了 那后面更找不到
        {
            cout << "No\n";
            return;
        }
        s.erase(it);
    }
    cout << "Yes\n";
}

​

​

深度学习【46】pix2pixHD 英伟达的pix2pixHD,能够合成高清的2048*1024图片,简直振奋人心。pix2pixHD是我之前介绍过的pix2pix的改进版本,使用多由粗到精的G网络和多尺度D网络(每个D网络都是用了pix2pix中同样的patch技术)。论文一开始用pix2pix尝试合成更高分辨率的图片,但发现效果不好,训练也很不稳定。所以就对pix2pix进行了一顿魔改。我们来看看他们是怎么改进的。由粗到精的G网络 阅读详情

相关推荐

pwscf与wannier90 Hands-On实战训练(一)——费米面计算为例

系列文章目录 Quantum Espresso Hands-On实战训练(三)——DOS计算 文章目录系列文章目录计算过程pwscf直接得到等能面pwscf和wannier90得到等能面pwscf直接得到等能面1. scf2. nscf3. 后处理pwscf和wannier90得到等能面1. Kpoints2. scf3. nscf4. pw2wan及wannier90.x5. XCrySDen可视化 计算过程 pwscf直接得到等能面 pwscf和wannier90得到等能面 pwscf直接得到等能面

weixin_45973682的博客 5069

零点工作室暑假集训(AtCoder--ABC245)

题意: 某一天,高桥在A点整(24小时制)的B分钟起床,而青木在C点整的D分钟和1秒起床。如果高桥比青木早起床,打印“高桥”;否则,打印“青木”。思路:就是判断A * 60 + B 和 C * 60 + D 的大小。

weixin_73807663的博客 219

【宠物识别系统】设计框架

能跑通的 Demo。收集 10,000 张同品种但不同个体的图片。训练ArcFace模型,验证准确率能否达到 99% 以上。搭建Milvus向量数据库。开发移动端 App/小程序。加入“图像质量检测”和“用户反馈纠错”功能。你是更偏向于做软件服务(如寻宠App、保险API),还是做软硬结合的产品(如智能喂食器)?这决定了我们下一步是深挖云端高并发架构,还是边缘端模型压缩。更偏向于软件,应用更广泛些,继续既然专注于纯软件/SaaS (Software as a Service) 方向。

百态·数智思维 | 聚焦大数据、量化与未来AI 1412

AtCoder Beginner Contest 245

AtCoder Beginner Contest 245

青少年趣味编程 673

基于Joplin和Joplin Server搭建私有云笔记

我们知道,多端同步功能是笔记工具最重要的功能。只有实现了多端同步,我们才能在工作电脑和手机之间无缝切换笔记体验。Joplin 在同步上做得不错,支持 Dropbox、OneDrive 和 AWS s3(当然国内都没法用),支持 WebDAV 协议,也支持自家的 Joplin Server。 本文介绍如何在自己的服务器上搭建 Joplin Server,并配置好 Joplin Desktop 的同步功能。 前置条件 安装docker 创建 Joplin Server 配置文件 创建配置文件,~/docke

代码时光 1万+

雷达信号处理——恒虚警检测(CFAR)

上图展示的是同时在距离维和多普勒维进行恒虚警检测的原理,如果只是在距离维或多普勒维做CFAR,检测单元的左右两侧均有设定好数量的保护单元和参考单元。不同的CFAR检测器适用于不同的场景,CA-CFAR算法适用于均匀环境中的单目标或彼此相距较远的多目标环境,在邻近多目标环境会发生目标的遮蔽效应,在杂波边缘会发生杂波边缘效应。从图中也可以看到,根据阈值的选择不同,有不同的检测器,其中CA-CFAR是取的参考单元的均值,SO-CFAR取的是参考单元的最小值,而GO-CFAR是取的参考单元的最大值。

诚朴勇毅 3万+

C- Choose Elements

Choose Elements Time Limit: 2 sec / Memory Limit: 1024 MB Score : 300 points Problem Statement You are given two sequences, each of length N, consisting of integers: A=(A 1 ,…,AN) and B=(B1,…,BN). Determine whether there is a sequence of length N, X=(X1 ,…

听取WA声一片 950

Creo报许可证错误License request failed for feature的解决方案

有些朋友用了一段时间打开creo软件,出现icense request failed for feature”错误,这个是Creo许可证出现了问题,一般是许可证文件无效或是已过期,导致Creo软件通信出现故障,就会出现Creo License request failed for feature, Requsesting CreoPMA_SSQ ,Run ptcstatus.bat server status。第三步:键盘按win+R,在运行窗口里输入:cmd,然后点确定。第八步:点击系统,找到系统信息。

Q82556499的博客 3万+

atcoder abc245 c模拟拿满分

atcoder abc245 c 题解

skyflying266的博客 645

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

【PINN物理信息网络】基于PINN物理信息网络求解圆柱坐标中的热方程(python)

k8291121的博客 2271

K8s(二十二):k8s集群如何部署一个Spring Boot项目(依赖于MySQL和Redis外部服务)

🔴 K8s(二十二):k8s集群如何部署一个Spring Boot项目(依赖于MySQL和Redis外部服务)

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 2万+

AtCoder Beginner Contest 245 A~E 题解

ABC245 A~E 题解 A - Good morning B - Mex C - Choose Elements D - Polynomial division E - Wrapping Chocolate

天生我材必有用,千金散尽还复来。 9191

【教程4>第10章>第13节】基于FPGA的图像双边滤波开发——单通道双边滤波Verilog实现

本文介绍了基于Vivado 2022.2的单通道高斯滤波FPGA实现方案。主要内容包括:1)采用3×3窗口像素提取、高斯权值计算、exp指数运算等模块构建双边滤波系统;2)详细分析了Verilog HDL实现的顶层设计文件,包含窗口数据生成、指数计算、混合权重、归一化处理等关键模块;3)展示了图像双边滤波器的RTL结构图。该设计为后续实现RGB三通道图像高斯滤波及MATLAB联合仿真奠定了基础。

FPGA/MATLAB学习教程/源码/项目合作开发 261

第2章 程序的选择执行

第2章 程序的选择执行

青少年趣味编程 1162

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

ABC 245 (多项式除法

题目: 思路: 这道题一开始方向出现了错误,我居然想用dfs,n的范围这么大(n<20的情况下可以考虑,不过确实应该复习一下dfs。 其实是道简单的模拟题,看看每个n前面能走到的点是不是可以走到后面,看了代码应该就一目了然了 AC代码: #include <bits/stdc++.h> using namespace std; const int maxn=211111; int n,k,a[maxn],b[maxn]; bool f[11][maxn]; int main() {

Rachelhello123的博客 845

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

AtcoderABC255场

例如,如果A=8,D=-3,N=3,则序列S=(8,5,2),但是通过将A=2,D=3,N=3进行替换,我们得到S=(8,5,2),与之前的序列相反,而“好数字”的集合保持不变。为了确保每个人至少被一盏灯照亮,我们需要找到每个人到最近(min)的具有灯的人之间的距离,并找到在所有人中每个人到最近(min)的具有灯的人之间的距离的最大值(max)作为光的强度。将给定的整数X转化为等差数列S中的一个好数字(good number),即满足初始项为A,公差为D,长度为N的等差数列S中的某一项。

m0_73618658的博客 361

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

零点工作室暑假集训(AtCoder--ABC255)

题意:输入r,c,和一个2*2的矩阵a,输出a[r][c]即可。

weixin_73807663的博客 232

零点工作室暑假集训(AtCoder--ABC254)

题意:给定一个整数,输出数的最后两位思路:直接输出字符串的倒数第2和倒数第三位即可,因为字符串从0开始存储。

weixin_73807663的博客 182

AtCoder Beginner Contest 256

AtCoder Beginner Contest 256

青少年趣味编程 788

AtcoderABC247场

外层循环遍历每个人,内层循环尝试给当前人选择一个昵称(即姓氏或名字),并确保给每个人起昵称时都不会与其他人产生冲突。初始状态下,给定一个由0和1组成的长度为4的字符串S,其中1表示对应方块上有人,0表示没有人。每个人同时向右移动一格,最右边的方块上的人将消失。需要判断是否可能给所有人起一个符合条件的昵称,其中昵称必须与该人的姓氏或名字相同,并且不能与其他任何人的姓氏或名字相同。当 N=1 时,直接输出 “1”。按照顺序连接而得到的,所以它是: 1, 2, 1。S1 是一个长度为1的序列,包含一个数字1。

m0_73618658的博客 352

ABC245 多项式除法 贪心 拓扑排序

模拟 数学两个多项式相乘,给结果,和一个乘数,问另一个乘数?也就是保证没有余数的多项式除法。中间的一项可能是多项乘起来再相加得到的,不好处理,但是最高项肯定是两个乘数的最高项相乘得到的,而我们又知道一个乘数的系数,那么另一个乘数的最高项可以很容易算出来。算出来之后,我们把最高项对结果的影响全都减去,就可以当这个最高项不存在了,那么倒数第二高项成为新的最高项,继续这个过程即可。

Maxwell_Newton的博客 448

atcoder abc247A-D

atcoder abc247 A #include<bits/stdc++.h> int main(){int i;std::cin>>i;printf("%04d",i/10);} B #include<bits/stdc++.h> using namespace std; string a,b;int n; map<string,bool>m; int main() { cin >> n; while(n--&&ci

skyflying266的博客 386

AtCoder Beginner Contest 254【VP记录】

AtCoder Beginner Contest 254【VP记录】

weixin_53745698的博客 556

AtCoder Beginner Contest 254 A~E 题解

A - Last Two Digits B - Practical Computing C - K Swap D - Together Square E - Small d and k

天生我材必有用,千金散尽还复来。 9085

AtCoder Beginner Contest 254

AtCoder Beginner Contest 254

qq_51968155的博客 981

[abc] AtCoder Beginner Contest 255 C,D

传送门 :tag:tag :tag: 题意 : 给定x,a,d,nx,a,d,nx,a,d,n你可以对xxx进行操作,询问最少多少次数使得a,d,na,d,na,d,n表示的等差数列中的某一项正好等于xxxa,d,na,d,na,d,n表示 首项aaa,ddd公差,nnn表示项数 思路 : 显然这个数是个定值,并且这题需要分类讨论首先对ddd进行讨论,我们发现如果d0的情况,所以我们只需要考虑d>0d>0d>0的情况然后显然x...

qq_34364611的博客 276
上一篇: CF #125 Edu(A ~ D)
下一篇: 竞赛中的STL库函数使用
a simple_boy
博客等级 码龄5年 1粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值