当前位置: 首页 > news >正文

AtCoder Beginner Contest竞赛题解 | AtCoder Beginner Contest 443

​欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!

专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。

适合人群:

  • 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
  • 希望系统学习C++/Python编程的初学者
  • 想要提升算法与编程能力的编程爱好者

附上汇总帖:AtCoder Beginner Contest竞赛题解 | 汇总


A - Append s

【题目来源】

洛谷:AT_abc443_a [ABC443A] Append s - 洛谷 (luogu.com.cn)

【题目描述】

给你一个由小写英文字母组成的字符串 \(S\)

输出在字符串 \(S\) 的末尾追加 s 后得到的字符串。

【输入】

输入内容按如下格式给出:

\(S\)

【输出】

输出一行表示答案。

【输入样例】

http

【输出样例】

https

【算法标签】

《洛谷 AT_abc443_a Append s》 #字符串#

【代码详解】

#include <bits/stdc++.h>
using namespace std;string s;  // 存储输入的字符串int main()
{cin >> s;  // 从标准输入读取一个字符串// 输出原字符串并在末尾添加字母's'cout << s << "s" << endl;return 0;
}

【运行结果】

http
https

B - Setsubun

【题目来源】

洛谷:AT_abc443_b [ABC443B] Setsubun - 洛谷 (luogu.com.cn)

【题目描述】

在一年一度的 Setsubun 节上,人们要吃与自己年龄相同数量的豆子。高桥君在其他任何时候都不吃豆子。

他在今年的 Setsubun 节时 \(N\) 岁(\(0\) 年后)。

从这一年开始(包括这一年),他最早会在多少年后吃掉 \(K\) 或更多粒豆子?

他是不死之身,所以从今年开始,他最终一定会吃掉 \(K\) 或更多粒豆子。

【输入】

输入内容按如下格式给出:

\(N\) \(K\)

【输出】

输出一行表示答案。

【输入样例】

4 43

【输出样例】

6

【算法标签】

《洛谷 AT_abc443_b Setsubun》 #模拟# #二分#

【代码详解】

#include <bits/stdc++.h>
using namespace std;#define int long long  // 将int定义为long long类型,避免大数溢出int n, k;  // n: 初始值,k: 目标值// 检查函数:判断mid是否满足条件
bool check(int mid)
{// 计算公式:mid*(mid+1)/2 + n*(mid+1)// 第一部分:1到mid的等差数列和// 第二部分:n重复(mid+1)次的和int ans = 0;ans = mid * (mid + 1) / 2 + n * (mid + 1);return ans >= k;  // 判断结果是否达到目标k
}signed main()  // 使用signed main()替代int main(),因为int被重定义为long long
{cin >> n >> k;  // 读入初始值n和目标值k// 二分查找范围int l = 0, r = 100000000;// 二分查找while (l < r){int mid = (l + r) / 2;if (check(mid))  // 如果mid满足条件{r = mid;  // 缩小右边界}else {l = mid + 1;  // 增大左边界}}// 输出最小满足条件的值cout << l << endl;return 0;
}

【运行结果】

4 43
6

C - Chokutter Addiction

【题目来源】

洛谷:AT_abc443_c [ABC443C] Chokutter Addiction - 洛谷 (luogu.com.cn)

【题目描述】

AtCoder 公司在时间 \(0\) 开始工作,在时间 \(T\) 结束工作。时间 \(t\) 与时间 \(t+1\) 之间的间隔为 \(1\) 秒。
高桥君在 AtCoder 公司的工作时间内按照以下规则查看 SNS chokutter:

  • 他在工作开始的同时打开 chokutter。
  • 如果青木君经过高桥君办公桌后面时 chokutter 处于打开状态,他会立即关闭 chokutter。
  • 如果高桥君在 \(t\) 时间关闭chokutter,他总是在 \(t+100\) 时间打开它。

从工作开始到结束,青木君从高桥君办公桌后面经过了 \(N\) 次,其中 \(i\) 次是在 \(A_i\) 时间。

从工作开始到结束,高桥君一共看了多少秒钟的 chokutter?

高桥君打开 chokutter 的瞬间,青木君不会从办公桌后面经过。

【输入】

输入内容由标准输入法提供,格式如下:

\(N\) \(T\)
\(A_1\) \(A_2\) \(\dots\) \(A_N\)

【输出】

输出答案。

【输入样例】

5 700
100 150 300 350 700

【输出样例】

500

【算法标签】

《洛谷 AT_abc443_c Chokutter Addiction》 #模拟#

【代码详解】

#include <bits/stdc++.h>
using namespace std;const int N = 300005;  // 数组最大容量
int n, t, ans, open_time, close_time;  // n: 事件数量,t: 总时间,ans: 累计开放时间,open_time: 下次可开放时间,close_time: 上次关闭时间
int a[N];  // 存储事件发生时间
bool open;  // 当前状态:true表示开放,false表示关闭int main()
{cin >> n >> t;  // 读入事件数量和总时间// 读入事件发生时间for (int i = 1; i <= n; i++){cin >> a[i];}open = true;  // 初始状态为开放for (int i = 1; i <= n; i++){if (open == true)  // 当前处于开放状态{// 累加从上次开放时间到当前事件时间的开放时长ans += a[i] - open_time;open = false;  // 标记为关闭close_time = a[i];  // 记录关闭时间open_time = a[i] + 100;  // 计算下次可开放时间(100时间单位后)}else if (open == false && a[i] > close_time && a[i] < open_time)  // 关闭期间有事件但未到下次开放时间{continue;  // 忽略该事件,状态不变}else if (open == false && a[i] >= open_time)  // 关闭期间有事件且已到下次开放时间{// 累加从下次开放时间到当前事件时间的开放时长ans += a[i] - open_time;open = false;  // 仍标记为关闭(因为当前事件导致关闭)close_time = a[i];  // 记录新的关闭时间open_time = a[i] + 100;  // 计算新的下次开放时间}}// 处理最后一段开放时间(从最后一次开放时间到总时间t)if (t >= open_time){ans += t - open_time;}// 输出总开放时间cout << ans << endl;return 0;
}

【运行结果】

5 700
100 150 300 350 700
500
http://www.jsqmd.com/news/351584/

相关文章:

  • 【优化调度】基于改进遗传算法求解农业水资源调度问题附Matlab代码
  • GPTBots Multi-Agent架构解析:如何利用多Agent协同搭建业务智能化升级
  • 细胞多尺度仿真软件:CellBlender_(7).分析与可视化模拟结果
  • 【优化调度】基于遗传算法的公交车调度排班优化的研究与实现附Matlab代码
  • 05. 循环神经网络
  • Qt的pro和pri文件基础知识
  • QT项目之创建.pri文件
  • contextvars
  • Qt中的pro文件
  • 【移动机器人路径规划】基于双存档模型的多模态多目标进化算法(MMOHEA)的移动机器人路径规划研究附Matlab代码
  • 2026 年 AI 呼叫系统哪家靠谱?
  • 【移动机器人路径规划】基于聚类技术的差分进化算法(MMO-DE-CSCD)的移动机器人路径规划研究附Matlab代码
  • 小程序毕设项目推荐-基于安卓的老年养护与智能服务系统基于springboot+Android的中老年人养老院健康一体化系统的设计与开发【附源码+文档,调试定制服务】
  • 电商数据运营岗,认可CDA数据分析师证书吗?
  • 小程序计算机毕设之基于springboot+小程序的乡村政务平台app设计与实现设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • 【移动机器人路径规划】基于环形拓扑的多目标粒子群优化算法(MO_Ring_PSO_SCD)的移动机器人路径规划研究附Matlab代码
  • 高职数据安全与管理专业,怎么学习数据安全相关的法律法规?
  • 极域电子教室2016完整版下载|含教师端工具与一键部署包
  • 杰和IB3-272:以低功耗高性能打造新一代工业智能交互核心
  • 【毕业设计】基于springboot+小程序的乡村政务平台app设计与实现设计与实现(源码+文档+远程调试,全bao定制等)
  • 【轴承故障检测】【借助倒谱预白化技术在变速条件下诊断轴承故障的应用】带通滤波后的倒谱预白化的平方包络谱用于轴承故障检测附Matlab代码
  • 010Editor 16.0.2中文汉化版|全界面汉化|顶级十六进制编辑器+专业级文本编辑工具
  • Python基于Vue的 基于大数据平台的大学生就业意向分析与展示django flask pycharm
  • 【肿瘤】多模医学图像融合算法在大数据时代中的应用附Matlab代码
  • 2.7
  • ELAU艾乐C600/10/1/1/1/00控制器故障报警代码及解决方案
  • 【有限元非线性分析】使用膜单元对开孔板和悬臂梁进行有限元建模研究附Matlab代码
  • Python基于Vue的大数据驱动的健身攻略推荐系统 django flask pycharm
  • 小程序毕设项目推荐-基于springboot+小程序的乡村政务平台app设计与实现设计与实现【附源码+文档,调试定制服务】
  • Python基于Vue的学生请销假系统 django flask pycharm