新闻详情

新闻详情

首页 / 资讯中心 / 详情

题解:Atcoder Beginner Contest abc473 A~D

发布时间:2026/9/6 7:08:18来源:尧图网络
题解:Atcoder Beginner Contest abc473 A~D
A - Second Half Sum题目描述给你一个长度为 $N$ 的整数序列 $A(A_1,A_2,\dots,A_N)$ .这里 $N$ 是偶数。 求 $A$ 的后半部之和即 $A_{(N/2)1},A_{(N/2)2},\dots,A_N$ 的和。解题思路A题不讲了。脑残题。完整代码#includebits/stdc.h #define fr1(i,a,b) for(int (i)(a);(i)(b);(i)) #define fr2(i,a,b) for(int (i)(a);(i)(b);--(i)) #define fr3(i,a,b,n) for(int (i)(a);(i)(b);(i)(n)) #define fr4(i,a,b,n) for(int (i)(a);(i)(b);(i)-(n)) #define fv(i,p) for(auto (i):(p)) #define ll long long #define ull unsigned ll #define pii pairint,int #define pll pairll,ll #define _1st first #define _2nd second #define y1 yy1 #define elif else if #define RT return #define debug coutendl-------------------------------------------------------------endl using namespace std; int n,ans; int main(){ ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); cinn; fr1(i,1,n){ int x; cinx; if(in/2)ansx; } coutans; RT 0; }B - Old Maid高桥目前有 $N$ 张牌。其中 第$i$ $(1\le i\le N)$ 张牌上写着整数 $A_i$ 。他尽可能多地重复下面的操作。选择两张写有相同整数的不同卡片然后吃掉这两张卡片。被吃掉的牌将被永久删除无法在后续操作中选择。求当无法再进行操作时写在卡片上的整数之和。解题思路卡片能吃排序。完整代码#includebits/stdc.h #define fr1(i,a,b) for(int (i)(a);(i)(b);(i)) #define fr2(i,a,b) for(int (i)(a);(i)(b);--(i)) #define fr3(i,a,b,n) for(int (i)(a);(i)(b);(i)(n)) #define fr4(i,a,b,n) for(int (i)(a);(i)(b);(i)-(n)) #define fv(i,p) for(auto (i):(p)) #define ll long long #define ull unsigned ll #define pii pairint,int #define pll pairll,ll #define _1st first #define _2nd second #define y1 yy1 #define elif else if #define RT return #define debug coutendl-------------------------------------------------------------endl using namespace std; int n,a[114514],ans; int main(){ ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); cinn; fr1(i,1,n){ cina[i]; } sort(a1,an1); fr1(i,1,n){ if(a[i]a[i1]){ a[i]0;a[i1]0; } }fr1(i,1,n){ ansa[i]; }coutans; RT 0; }C - Change Schools题目描述目前AtCoder 高中有 $K$ 个班级和 $N$ 名学生其中 $i$ 个学生属于 $(1\le i\le N)$ 个班级。高桥将在九月份转入 AtCoder 高中。届时他可以在 $K$ 个班级中任意选择一个班级并属于那个班级。如果有一个班级的学生比他所在的班级多他就会伤心。否则他会很高兴。求如果他属于多少个班他就会感到快乐。解题思路最优策略把新增学生放到一个人数 mx‑1 的班级这样得到最多的等于最大值的班级。所以答案统计有多少个班级满足 \(cnt_i1 \ge mx\)。\(cnt_i mx\)\(cnt_i1 \ge mx\) 成立这些班本身就是最大值\(cnt_i mx‑1\)\(cnt_i1 mx\)加一个人之后也成为最大值\(cnt_i \le mx‑2\)\(cnt_i1 \le mx‑1\)达不到最大值不计入。完整代码#includebits/stdc.h #define fr1(i,a,b) for(int (i)(a);(i)(b);(i)) #define fr2(i,a,b) for(int (i)(a);(i)(b);--(i)) #define fr3(i,a,b,n) for(int (i)(a);(i)(b);(i)(n)) #define fr4(i,a,b,n) for(int (i)(a);(i)(b);(i)-(n)) #define fv(i,p) for(auto (i):(p)) #define ll long long #define ull unsigned ll #define pii pairint,int #define pll pairll,ll #define _1st first #define _2nd second #define y1 yy1 #define elif else if #define RT return #define debug coutendl-------------------------------------------------------------endl using namespace std; int n,k,a[200001],ans; pii cl[200001];//班级人数 int main(){ ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); cinnk; fr1(i,1,k){ cl[i]._1sti; cl[i]._2nd0; } fr1(i,1,n){ cina[i]; cl[a[i]]._2nd; } int mx0; fr1(i,1,k){ mxmax(mx,cl[i]._2nd); } fr1(i,1,k){ if(cl[i]._2nd1mx)ans; } coutans; RT 0; }D - Coefficient Stair题目描述输出由满足 $\displaystyle\sum_{i1} ^ Ni\times A_iK$ 的非负整数组成的所有长度为 $N$ 的序列 $A(A_1,A_2,\ldots,A_N)$ 按字典序排列。解题思路使用暴力打表的方式枚举前n-1个数最后一个变量直接通过等式算出来\(n\cdot a_n k - \sum_{i1}^{n‑1}i\cdot a_i\)完整代码#includebits/stdc.h #define fr1(i,a,b) for(int (i)(a);(i)(b);(i)) #define fr2(i,a,b) for(int (i)(a);(i)(b);--(i)) #define fr3(i,a,b,n) for(int (i)(a);(i)(b);(i)(n)) #define fr4(i,a,b,n) for(int (i)(a);(i)(b);(i)-(n)) #define fv(i,p) for(auto (i):(p)) #define ll long long #define ull unsigned ll #define pii pairint,int #define pll pairll,ll #define _1st first #define _2nd second #define y1 yy1 #define elif else if #define RT return #define debug coutendl-------------------------------------------------------------endl using namespace std; int n,k; int main(){ ios::sync_with_stdio(false); cin.tie(NULL);cout.tie(NULL); cinnk; if(n1){ cout k \n; }elif(n2){ fr1(a1,0,k){ if((k-1*a1)%20){ couta1 (k-1*a1)/2\n; } } }elif(n3){ fr1(a1,0,k){ fr1(a2,0,(k-1*a1)/2){ if((k-1*a1-2*a2)%30){ couta1 a2 (k-1*a1-2*a2)/3\n; } } } }elif(n4){ fr1(a1,0,k){ fr1(a2,0,(k-1*a1)/2){ fr1(a3,0,(k-1*a1-2*a2)/3){ if((k-1*a1-2*a2-3*a3)%40){ couta1 a2 a3 (k-1*a1-2*a2-3*a3)/4\n; } } } } }elif(n5){ fr1(a1,0,k){ fr1(a2,0,(k-1*a1)/2){ fr1(a3,0,(k-1*a1-2*a2)/3){ fr1(a4,0,(k-1*a1-2*a2-3*a3)/4){ if((k-1*a1-2*a2-3*a3-4*a4)%50){ couta1 a2 a3 a4 (k-1*a1-2*a2-3*a3-4*a4)/5\n; } } } } } }elif(n6){ fr1(a1,0,k){ fr1(a2,0,(k-1*a1)/2){ fr1(a3,0,(k-1*a1-2*a2)/3){ fr1(a4,0,(k-1*a1-2*a2-3*a3)/4){ fr1(a5,0,(k-1*a1-2*a2-3*a3-4*a4)/5){ if((k-1*a1-2*a2-3*a3-4*a4-5*a5)%60){ couta1 a2 a3 a4 a5 (k-1*a1-2*a2-3*a3-4*a4-5*a5)/6\n; } } } } } } }elif(n7){ fr1(a1,0,k){ fr1(a2,0,(k-1*a1)/2){ fr1(a3,0,(k-1*a1-2*a2)/3){ fr1(a4,0,(k-1*a1-2*a2-3*a3)/4){ fr1(a5,0,(k-1*a1-2*a2-3*a3-4*a4)/5){ fr1(a6,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5)/6){ if((k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6)%70){ couta1 a2 a3 a4 a5 a6 (k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6)/7\n; } } } } } } } }elif(n8){ fr1(a1,0,k){ fr1(a2,0,(k-1*a1)/2){ fr1(a3,0,(k-1*a1-2*a2)/3){ fr1(a4,0,(k-1*a1-2*a2-3*a3)/4){ fr1(a5,0,(k-1*a1-2*a2-3*a3-4*a4)/5){ fr1(a6,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5)/6){ fr1(a7,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6)/7){ if((k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6-7*a7)%80){ couta1 a2 a3 a4 a5 a6 a7 (k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6-7*a7)/8\n; } } } } } } } } }elif(n9){ fr1(a1,0,k){ fr1(a2,0,(k-1*a1)/2){ fr1(a3,0,(k-1*a1-2*a2)/3){ fr1(a4,0,(k-1*a1-2*a2-3*a3)/4){ fr1(a5,0,(k-1*a1-2*a2-3*a3-4*a4)/5){ fr1(a6,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5)/6){ fr1(a7,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6)/7){ fr1(a8,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6-7*a7)/8){ if((k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6-7*a7-8*a8)%90){ couta1 a2 a3 a4 a5 a6 a7 a8 (k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6-7*a7-8*a8)/9\n; } } } } } } } } } }elif(n10){ fr1(a1,0,k){ fr1(a2,0,(k-1*a1)/2){ fr1(a3,0,(k-1*a1-2*a2)/3){ fr1(a4,0,(k-1*a1-2*a2-3*a3)/4){ fr1(a5,0,(k-1*a1-2*a2-3*a3-4*a4)/5){ fr1(a6,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5)/6){ fr1(a7,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6)/7){ fr1(a8,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6-7*a7)/8){ fr1(a9,0,(k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6-7*a7-8*a8)/9){ if((k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6-7*a7-8*a8-9*a9)%100){ couta1 a2 a3 a4 a5 a6 a7 a8 a9 (k-1*a1-2*a2-3*a3-4*a4-5*a5-6*a6-7*a7-8*a8-9*a9)/10\n; } } } } } } } } } } } RT 0; }
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

FPGA实现SPI控制器:从Verilog代码到上板调试全解析 2026/9/6 7:50:24

FPGA实现SPI控制器:从Verilog代码到上板调试全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
测试data set 2026/9/6 7:50:24

测试data set

SQuAD - the Stanford Question Answering Dataset

阅读更多 →
RocketMQ消息存储机制:刷盘、副本、高可用原理详解 2026/9/6 7:50:24

RocketMQ消息存储机制:刷盘、副本、高可用原理详解

RocketMQ消息存储机制:刷盘、副本、高可用原理详解作者:黒漂技术佬 适用读者:对RocketMQ有基础了解,想深入理解存储机制的同学一、为什么你要搞懂消息存储机制? 先说个场景:你负责一套无人售货柜系统&#…

阅读更多 →
多区域服务器部署中,一种基于IP定位与实时探测的路由选择方法 2026/9/6 7:50:24

多区域服务器部署中,一种基于IP定位与实时探测的路由选择方法

在全球范围部署多个服务器节点,是降低用户访问延迟的常见做法。但仅有多节点并不足以保证效果——用户请求若被分发到距离较远或临时不可用的节点,仍会出现响应缓慢的问题。一种实用的改进方案,是将路由决策拆分为两个步骤:先通过…

阅读更多 →
ChatCut online 软件版本对比录屏:旧版、新版与回退过程怎样剪得可核对 2026/9/6 7:50:24

ChatCut online 软件版本对比录屏:旧版、新版与回退过程怎样剪得可核对

对比两个软件版本时,画面上左边快、右边慢,可能只是两次录制的起点不同,并不能直接解释成版本性能差异。若新版的结果镜头还混用了旧版数据,比较就更难成立。这类录屏应先固定比较条件再剪辑。可以输入 chatcut online 查找 ChatC…

阅读更多 →
企业自动发卡系统卡密资源寄售平台虚拟点卡在线商城专业自助发卡源码多商户版 2026/9/6 7:47:24

企业自动发卡系统卡密资源寄售平台虚拟点卡在线商城专业自助发卡源码多商户版

一、源码描述 企业自动发卡系统,顾名思义,这是一套企业级的自动发卡源码,基于ThinkPHP内核,支持对接微信公众号,自带三套首页模板和六套订单页面模板,支持第三方短信接口,支持个人免费邮箱配置&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞