![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CF
文章平均质量分 82
SuperRandi
欢迎讨论交流
展开
-
Codeforces Round 900 (Div. 3)
一开始只用了二分,每次查一个区间就reversse一次,没想到TLE了(/(ㄒoㄒ)/~~,事实证明我就是蒟蒻🤣),然后改了一个多小时,改不动了直接看大佬的代码,发现要用差分和前缀和做,而且我们还可以发现区间[a,b]在[Li,Ri]中是对称存在的,比如Li=1,Ri=4,x=2,那么a=2,b=3(当时做题的时候怎么就没想到呢😱),接下来就是计算每个位置要翻转的次数,如果是奇数次则与对称得位置翻转,详情请看代码。:如果S(n)==x,说明只有取走所有数才会成立,即k==n输出YES,反之NO。原创 2024-07-07 15:29:45 · 300 阅读 · 0 评论 -
Codeforces Round 903 (Div. 3)A~F
找规律,通过模拟样例可以发现三根线要一样长,那么最终长度肯定是要与最短的那根线一样长,如果某根线不能剪成最短长度,说明这根线不能被最短的长度整除,直接输出NO就可以了,如果能被整除,那么比较这两根线的长度和/最短长度得到的结果是否会大于3,大于就输出NO,反之YES。这道题我们要从后往前dp,定义dp[i]为从n到i的最少操作次数,由题意可知我们对一个数字有两种操作,删除:dp[i]=dp[i+1]+1,保留 :dp[i]=dp[i+a[i]+1],我们只需要在这两种操作中取最小值就可以了。原创 2024-07-06 16:44:59 · 748 阅读 · 0 评论