Codeforces Round 705&707 (div 2)
Codeforces Round #705&707 (div 2)
这两场实在是鸽了太久……#705那场成功渡劫上了绿名(不影响我菜)#707算是在绿名打的第一场
CF Round #705
A Anti-knapsack (1493A)
思维题+签到题
题意大致是找一组不同的数,这些数在 1 到 n 之间,这组数里面不能有两个或多个元素的和等于 k ;
显然如果 n 大于 k ,k 到 n 的数都是可以的;只需在 1 到 k 中找。考虑到一个数能分解为 ( 1 + ( k - 1 ) ) 、( 2 + ( k - 2 ) ) ……这样的形式,那么不难看出,选择 1 到 k 右半边的数字时,元素最多。
题解
1 |
|
B Planet Lapituletti (1493B)
模拟,某种意义上比第一题还简单 (没错我就这么幸运地到了绿名)
注意哪几个数字对称,对称过去是什么数字即可
题解
1 |
|
CF Round #707
A Alexey and Train (1501A)
模拟题+签到题
题解
1 |
|
B Napoleon Cake (1501B)
模拟,但是一般的模拟会超时,考虑优化。
我的想法:因为下方的酱不会影响上方的饼, 所以考虑从后往前模拟,在把一些端点值设置为 1 的同时去除掉那些不能作为最终端点的 “ 1 ” 。最后数组中有偶数个 1 ,每两个 1 之间为“ 浸润 ”的饼。
代码
1 |
|
其他方法(某大佬给出) :
碰到酱料时在两端点位置插入标识 (类似于对括号的判断),即“ 当左括号数量大于右括号的数量 ”的时候,碰到的饼是浸润的;不满足该条件时是不浸润的。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!