AtCoder Beginner Contest竞赛题解 | AtCoder Beginner Contest 427
​欢迎大家订阅我的专栏算法题解C与Python实现本专栏旨在帮助大家从基础到进阶 逐步提升编程能力助力信息学竞赛备战专栏特色1.经典算法练习根据信息学竞赛大纲精心挑选经典算法题目提供清晰的代码实现与详细指导帮助您夯实算法基础。2.系统化学习路径按照算法类别和难度分级从基础到进阶循序渐进帮助您全面提升编程能力与算法思维。适合人群准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生希望系统学习C/Python编程的初学者想要提升算法与编程能力的编程爱好者附上汇总帖AtCoder Beginner Contest竞赛题解 | 汇总A - ABC - AC【题目来源】洛谷[AT_abc427_a ABC427A] ABC - AC - 洛谷【题目描述】You are given a stringS SSconsisting of uppercase English letters. Here, the length ofS SSis odd.给定一个由大写英文字母组成的字符串S SS。此处S SS的长度为奇数。Print the string obtained by deleting the middle character ofS SS. The middle character ofS SSis theL 1 2 \frac{L1}{2}2L1​-th character ofS SS, whereL LLis the length ofS SS.输出删除S SS的中间字符后得到的字符串。S SS的中间字符是第L 1 2 \frac{L1}{2}2L1​个字符其中L LL为S SS的长度。【输入】The input is given from Standard Input in the following format:S【输出】Print the string as instructed in the problem statement.【输入样例】ABCDE【输出样例】ABDE【算法标签】《洛谷 AT_abc427_a ABC-AC》 #模拟#【代码详解】#includebits/stdc.husingnamespacestd;string s;// 存储输入的字符串intmain(){// 输入字符串cins;// 获取字符串长度intns.size();// 在字符串前添加空格使索引从1开始便于处理s s;// 输出前半部分不包括中间字符// 从第1个字符到第n/2个字符for(inti1;in/2;i){couts[i];}// 输出后半部分不包括中间字符// 从中间字符的下一个位置到字符串末尾for(inti(n1)/21;in;i){couts[i];}coutendl;return0;}【运行结果】ABCDE ABDEB - Sum of Digits Sequence【题目来源】洛谷[AT_abc427_b ABC427B] Sum of Digits Sequence - 洛谷【题目描述】For a positive integerx xx, definef ( x ) f(x)f(x)as the sum of the digits in the decimal representation ofx xx. For example,f ( 123 ) 1 2 3 6 f(123) 1 2 3 6f(123)1236.对于正整数x xx定义f ( x ) f(x)f(x)为x xx的十进制表示中各位数字之和。例如f ( 123 ) 1 2 3 6 f(123) 123 6f(123)1236。Define an infinite sequenceA ( A 0 , A 1 , A 2 , … ) A (A_0, A_1, A_2, \ldots)A(A0​,A1​,A2​,…)by the following formula:通过以下公式定义一个无限序列A ( A 0 , A 1 , A 2 , … ) A (A_0, A_1, A_2, \ldots)A(A0​,A1​,A2​,…)A 0 1 A_0 1A0​1Fori ≥ 1 i \geq 1i≥1,A i ∑ j 0 i − 1 f ( A j ) A_i \displaystyle\sum_{j 0}^{i - 1} f(A_j)Ai​j0∑i−1​f(Aj​)You are given a positive integerN NN. Find the value ofA N A_NAN​.给定一个正整数N NN。求A N A_NAN​的值。【输入】The input is given from Standard Input in the following format:N【输出】Print the answer.【输入样例】6【输出样例】23【算法标签】《洛谷 AT_abc427_b Sum of Digits Sequence》 #递推#【代码详解】#includebits/stdc.husingnamespacestd;constintN105;// 定义最大序列长度intn;// 序列长度inta[N];// 存储原始序列值intf[N];// 存储数字和序列值/** * 计算一个整数的各位数字之和 * param x 输入整数 * return 各位数字之和 */intcalc(intx){intres0;while(x){resx%10;// 取个位数并累加x/10;// 去掉个位数}returnres;}intmain(){// 输入序列长度cinn;// 初始化前两个元素a[0]1;// 第0项为1a[1]1;// 第1项为1f[0]calc(a[0]);// 计算第0项的数字和f[1]calc(a[1]);// 计算第1项的数字和// 计算序列的后续元素for(inti2;in;i){// 计算a[i]前i项f值的和for(intj0;ji;j){a[i]f[j];}// 计算f[i]a[i]的各位数字之和f[i]calc(a[i]);}// 输出第n项的值couta[n]endl;return0;}【运行结果】6 23C - Bipartize【题目来源】洛谷[AT_abc427_c ABC427C] Bipartize - 洛谷【题目描述】There is a simple undirected graph withN NNvertices andM MMedges. The graph consists of vertex1 , 1,1,vertex2 , … , 2,\ldots,2,…,vertexN NN, and thei ii-th edge( 1 ≤ i ≤ M ) (1\le i\le M)(1≤i≤M)connects verticesu i u _ iui​andv i v _ ivi​.有一个具有N NN个顶点和M MM条边的简单无向图。该图包含顶点1 11、顶点2 22、……、顶点N NN第i ii条边1 ≤ i ≤ M 1≤i≤M1≤i≤M连接顶点u i u_iui​和v i v_ivi​。You will perform the following operation zero or more times:您将执行以下操作零次或多次Choose one edge that has not been deleted yet, and delete it.选择一条尚未被删除的边并将其删除。Your goal is to make the graph bipartite. Find the minimum number of operations needed to make the graph after the operations bipartite.您的目标是通过操作使图变为二分图。求使操作后的图成为二分图所需的最小操作次数。What it means for a graph to be simple?简单图是指满足以下两个条件的图A graph is simple if and only if it has no self-loops (edges whereu i v i u _ iv _ iui​vi​) or multi-edges (pairs of edges whereu i u j u _ iu _ jui​uj​andv i v j v _ iv _ jvi​vj​).一个图是简单图当且仅当它没有自环u i u j u _ iu _ jui​uj​的边或重边满足u i u j u _ iu _ jui​uj​且v i v j v _ iv _ jvi​vj​的边对。【输入】The input is given from Standard Input in the following format:N M u_1 v_1 u_2 v_2 . . . u_M v_M【输出】Print the number of operations that need to be performed to make the graph bipartite.【输入样例】5 8 1 2 1 3 1 4 2 3 2 5 3 4 3 5 4 5【输出样例】2【算法标签】《洛谷 AT_abc427_c Bipartize》 #DFS#【代码详解】#includebits/stdc.husingnamespacestd;typedefpairint,intPII;// 定义边对类型constintN15;// 定义最大节点数intn,m;// n:节点数, m:边数intcol[N];// 存储每个节点的颜色1或2intcnt;// 统计同色边的数量intcur;// 未使用的临时变量intans1e9;// 存储最小同色边数PII bian[N*N];// 未使用的边数组vectorintve[N];// 邻接表存储图结构boolvis[N];// DFS访问标记数组/** * 深度优先搜索进行二分图染色 * param u 当前节点 * param color 当前节点要染的颜色 */voiddfs(intu,intcolor){vis[u]1;// 标记当前节点已访问col[u]color;// 给当前节点染色// 遍历所有邻接节点for(inti0;ive[u].size();i){intvve[u][i];// 邻接节点// 如果邻接节点与当前节点颜色相同统计同色边if(col[v]col[u]){cnt;}// 如果邻接节点已访问跳过if(vis[v]){continue;}// 递归染色邻接节点使用相反颜色dfs(v,color1?2:1);}}intmain(){// 输入节点数和边数cinnm;// 输入图的边for(inti1;im;i){intu,v;cinuv;ve[u].push_back(v);ve[v].push_back(u);}// 尝试以每个节点为起点进行二分图染色for(inti1;in;i){// 重置访问标记和颜色数组memset(vis,0,sizeof(vis));memset(col,0,sizeof(col));cnt0;// 重置同色边计数器// 从当前节点开始DFS染色dfs(i,1);// 更新最小同色边数ansmin(ans,cnt);}// 输出结果同色边被统计了两次需要除以2coutans/2endl;return0;}【运行结果】5 8 1 2 1 3 1 4 2 3 2 5 3 4 3 5 4 5 2

相关新闻

Petagraph - 大规模生物医学统一知识图谱框架 - Nature Scientific Data

Petagraph - 大规模生物医学统一知识图谱框架 - Nature Scientific Data

摘要本文介绍了一种名为Petagraph的大规模统一知识图谱框架,旨在整合生物医学数据。在过去的十年中,可用的生物医学数据的数量和质量都显著增长。为了更有效地利用这些庞大数据,并减轻与整合多组学数据相关的挑战,我们开发了Petag…

2026/5/17 4:34:52 阅读更多 →
不踩雷! 降AIGC网站 千笔·专业降AI率智能体 VS Checkjie,专科生专属

不踩雷! 降AIGC网站 千笔·专业降AI率智能体 VS Checkjie,专科生专属

在AI技术迅猛发展的今天,越来越多的专科生开始借助AI工具辅助完成论文写作,以提高效率、优化内容结构。然而,随着学术审核标准的不断升级,AI生成内容的痕迹和重复率问题日益凸显,成为影响论文通过率的关键因素。许多学…

2026/7/5 13:22:44 阅读更多 →
A.每日一题——1446. 连续字符

A.每日一题——1446. 连续字符

题目链接:1446. 连续字符(简单) 算法原理: 解法:一次遍历(类似线性动态规划) 写法一:用cnt计数更新 1ms击败100.00% 时间复杂度O(N) 遍历每个字母,如果后续字母与前一个字…

2026/5/17 4:34:47 阅读更多 →

最新新闻

Python+Selenium UI自动化测试框架搭建:从PO模式到Pytest实战

Python+Selenium UI自动化测试框架搭建:从PO模式到Pytest实战

1. 项目概述与核心价值 最近在团队里做技术复盘,发现很多测试同学在尝试UI自动化时,总是一上来就埋头写脚本,结果代码越写越乱,维护成本高到离谱,最后项目不了了之。这让我想起几年前自己踩过的那些坑,所以…

2026/7/6 9:49:00 阅读更多 →
Kimi    LeetCode 3495. 使数组元素都变为零的最少操作次数 Rust实现

Kimi LeetCode 3495. 使数组元素都变为零的最少操作次数 Rust实现

这是 LeetCode 3495 的 Rust 实现。题目理解- 每个查询 [l, r] 定义数组 nums [l, l1, ..., r] - 每次操作选两个数 a, b,替换为 ⌊a/4⌋ 和 ⌊b/4⌋ - 求将所有元素变为 0 的最少操作次数核心思路一个数 x 变为 0 需要的操作次数是满足 4^p > x 的最小 p&#…

2026/7/6 9:49:00 阅读更多 →
Java加密算法实战宝典:从AES、RSA到国密算法与安全实践

Java加密算法实战宝典:从AES、RSA到国密算法与安全实践

1. 项目概述:为什么Java开发者必须掌握加密算法?在当今这个数据即资产的时代,无论你是开发一个简单的用户登录模块,还是构建一个处理敏感交易的金融系统,数据安全都是悬在头顶的达摩克利斯之剑。我见过太多项目&#x…

2026/7/6 9:46:56 阅读更多 →
Python实现DDoS攻击模拟工具:从SYN Flood到HTTP Flood的攻防实战

Python实现DDoS攻击模拟工具:从SYN Flood到HTTP Flood的攻防实战

1. 项目概述:为什么我们需要一个Python DDoS测试工具?在网络安全领域,DDoS(分布式拒绝服务)攻击始终是企业与组织面临的最直接、最具破坏性的威胁之一。它不窃取数据,却能通过海量无效请求耗尽目标服务器的…

2026/7/6 9:46:56 阅读更多 →
UI自动化测试新方案设计:从代码到场景,破解维护成本与稳定性难题

UI自动化测试新方案设计:从代码到场景,破解维护成本与稳定性难题

1. 项目概述:为什么UI自动化测试方案需要“新设计”?在软件测试领域,UI自动化测试一直是个让人又爱又恨的话题。爱它,是因为它能将测试人员从大量重复、枯燥的手工点击中解放出来,尤其是在回归测试阶段,其价…

2026/7/6 9:44:52 阅读更多 →
Mixeway与Dependency-Track集成实战:打通SBOM漏洞管理与安全响应闭环

Mixeway与Dependency-Track集成实战:打通SBOM漏洞管理与安全响应闭环

1. 项目概述:当Mixeway遇上Dependency-Track 在DevSecOps的实践中,安全左移已经从一个时髦的口号变成了实实在在的工程挑战。Mixeway作为一个旨在提升应用安全态势的平台,其核心价值在于整合各类安全工具,形成统一的风险视图和响应…

2026/7/6 9:42:50 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻