ABC-229解题报告
赛时做出来五道题,涨大分(开心)
A. First Grid
有一个两行两列的矩阵,每个格子有黑和白两种颜色,至少有两个黑色格子,问黑色格子是否构成一个连通块(四连通)。
显然,如果左上、右下都是白色或右上、左下都是白色,那么不能构成,否则能。
B. Hard Calculation
有两个正整数
和 做加法,问是否需要进位。
大水题,一位一位地判断即可。
C. Cheese
有
种奶酪,第 种奶酪每千克能提供 的美味度,但最多能使用 千克。你一共最多能使用 千克奶酪,问获得的总美味度最大是多少。
这题太坑了,我本来以为是个奇怪的背包,后来发现,既然每个物品的重量都是
D. Longest X
有一个只包含
X
和.
的字符串,你每次可以将一个 .
变成X
,问最多次操作后能获得的最长连续 X
字串的长度。
如果 .
都变成 X
(即点的个数
如果不能,那么容易发现,答案一定是把
//a[i]为0则是点,为1则是X
//now表示当前的i能到达的最远位置
//nowf表示到达最远位置需要花费几次操作
int now=n,nowf=0;
for(int i=n;i>0;i--) {
nowf+=(!a[i]);
while(nowf>k)
nowf-=(!a[now--]);
t[i]=now;
}
E. Graph Destruction
给你一个
个点、 条边的无向图,依次删除编号为 的结点,每次删完后问剩下的连通块个数。
正着删边没法维护,我们考虑反向处理,每次加边。仔细像一下就会知道,每次加一个点,就要加上这个点与已有结点的边,即
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步