
CF题解
噜噜噜鹿鹿
盛世之牛马,乱世之炮灰
展开
-
Codeforces Round #753 (Div. 3)题解(待更新)
这次的战绩。A题:好像没什么好说的,记录一下每个字符的位置,和上一次的位置就行了#include <iostream>#include <cstring>#include <algorithm>#include <vector>#include <math.h>#include <map>#include <set>#include <queue>using namespace std;.原创 2021-11-03 20:55:33 · 195 阅读 · 0 评论 -
Codeforces Round #752 (Div. 2) D. Moderate Modular Mode(思维)
原题链接题意:让你选出一个n,使得对于给出的x,y,n % x = y % n。思路:首先对于x > y,易得出直接输出 x + y即可。我们讨论x <= y时的情况。首先直接列式子列了半天也没列出个所以然来,因为式子里面有%不好处理,于是我们把问题转化为x轴上的问题。因为n % x = y % n且x <= y,那么x <= n <= y。因此我们取这个px ~ y的中点即可使得 n % x = y % n~也就是y - y % x / 2。#include原创 2021-10-31 14:28:11 · 382 阅读 · 1 评论 -
Codeforces Round #752 (Div. 2) C. Di-visible Confusion
原题链接题意:每次可以删除一个a[i] % (i + 1) 不等于0的数,问我们能否删完。思路:首先思考其他元素删除带给当前元素的影响是什么,我们可以从i=1开始想,当i=1时,没有元素可以让下标为1的元素向左偏移;i=2时,仅有i=1的元素消除可以使得当前元素产生偏移…那么假设当前下标为i,我们可以通过消除前面的元素让自身的下标变成1~i-1,这都是可以取到的。因此我们有了初步的想法#include <iostream>#include <cstring>#include原创 2021-10-31 13:33:05 · 226 阅读 · 0 评论 -
Codeforces Round #751 (Div. 2) D. Frog Traveler
写法借鉴某个博主,本来想用线段树优化建边写这道题,写道后来才发现需要拆点,加上3e5的范围,线段树建边空间可能不太够,本身初始就是2nlogn的边数(两颗线段树*nlogn),拆点继续乘2,那么不算上后续加边的话就是至少4nlogn的边,差不多就是7e多的边,感觉不太妙,写着也麻烦,于是换了bfs写法。bfs写法基于贪心,原理是我们在某个点时,可以选择0~a[i]的距离走,那么我们选择的必定是最利于我们的,后续我们就不需要再这些范围内遍历了,所以我们可以设定一个值,代表我们之前最高可以到达什么位置,后续.原创 2021-10-29 15:16:23 · 184 阅读 · 0 评论