
CF日志
文章平均质量分 65
codeforces
loveesong
这个作者很懒,什么都没留下…
展开
-
Codeforces Round 867 (Div. 3) - G2. Magic Triples (Hard Version)
统计答案时要先判断 i 是否 x 的因子,不然会TLE, 个人理解是 x mod i 为0先保证了i是x的因子,可以先把不是因子的舍去,但是如果在后面写x%i==0由于map好像本身查找也有一点时间复杂度,然后就会爆。思路:与G1唯一不同的是值域上界ulim变成了1e9,若我们还是按照原先做法。,TLE,向大佬学习了一下,学到了值域分治!的数,我们考虑到上界是1e9,可以直接去顺序枚举因子i,由于。,最大有1e3,接下来枚举x的因子,即按照G1思路。的数,我们考虑直接暴力分解,复杂度是。原创 2023-04-26 22:19:10 · 192 阅读 · 0 评论 -
Codeforces Round 867 (Div. 3) - G1. Magic Triples (Easy Version)
的复杂度内求出一个数的全部因子,然后遍历这些因子,若当前因子it*x>mxm则已经无解,选择遍历x的下个因子it,若存在因子it使得。,足以通过此题,接下来考虑统计答案, 当b=1,也就是三个相同的数时容易得出结果,考虑b不为1,我们可以在。思路:值域上界有mxm = 1e6,我们可以去枚举中间那个数x(桥梁),所以要去判断。是否存在($ b * x$原创 2023-04-26 16:37:30 · 151 阅读 · 0 评论 -
Codeforces Round 867 (Div. 3) - E. Making Anti-Palindromes
题意:给定一个全是小写字母的字符串,现有操作可以交换字符串中任意2个字母的位置. 问最少经过几次这样的操作,可以使得原字符串成为反回文串,若无解输出-1。原创 2023-04-25 20:21:22 · 335 阅读 · 0 评论 -
Codeforces Round #713(Div. 3) (全)
一个是0/1的情况,我们先将他们补充完整,并判断无解,后从左往右扫描一遍得到的字符串,对a与b的个数删减,接下来我们要处理的就是成对的问号,在这里我们只扫描左半边,并贪心的思考将max(a,b)对应的字符进行填补,同样删减a,b.然后最后对于字符串原长是奇数的情况,我们还剩一个?接下来我们按照一种类似于“进制”的思想,优先调整后端的数,若后端的数已达到最大,再调整前端的数,依次迭代,这样我们就处理好了区间[l,r]中的数,并对于这些数打上标记,最后对于整个排列,我们再将没有标记过的数依次塞入就行。原创 2023-04-23 23:43:01 · 117 阅读 · 0 评论 -
Codeforces Round #713(Div. 3) - F. Education
天的情况, 在赚钱和升级2种情况中取天数的最小值,可以先得到在当前i位置下需要多少天才能达到c,然后对于现在的钱要是可以升级,那就升级,若不能升级那就赚钱去升级,最后对于到达满级的情况单独特判一下,取最小值即可。题意:Polycarp 想要买新电脑,新电脑价格为c,他可以通过任职来赚钱,其公司有n个职位,编号从1开始,初始状态时他有0元钱和处于1位置。No2. 花b[i]元钱移动位置到i+1 (升级)No1. 在i位置上获得a[i]元钱 (赚钱)思路:大模拟,我们可以枚举第 i(原创 2023-04-23 23:22:41 · 74 阅读 · 0 评论 -
Codeforces Round #713(Div. 3) - G. Short Task
思路:预处理+打表,对于每个是i的倍数的数我们都要加上i,所以我们开个sum[ ]记录每个数的。题意:我们先定义d(n) = n的所有因子之和,给定一个数c(),要求寻找最小的n满足d(n) = c。,然后再打个表记录一下第一次出现。原创 2023-04-23 19:54:27 · 71 阅读 · 0 评论 -
Codeforces Round #713(Div. 3) - E. Permutation by Sum
接下来我们按照一种类似于“进制”的思想,优先调整后端的数,若后端的数已达到最大,再调整前端的数,依次迭代,这样我们就处理好了区间[l,r]中的数,并对于这些数打上标记,最后对于整个排列,我们再将没有标记过的数依次塞入就行。题意:给定整数n,l, r, s,要求你找一个长度为n的排列p使得。中的值,否则无论我们怎么调整区间[l,r]的数都是无解,, 若有多个则输出任意一个,若无解则输出-1。思路:对于所给区间[l,r],我们先特判。,则先将区间[l,r]中的数依次赋为。原创 2023-04-16 15:28:18 · 191 阅读 · 0 评论 -
Codeforces Round #713(Div. 3) - D.Corrupted Array
若此时无解则继续尝试b的次大值作前缀和,b的最大值舍去(不舍去的话作为成员加入前缀和肯定比次大值大,相互矛盾,所以只能舍去), 在n+1中数中找n个数使其和等于次大值,所以次大值的2倍等于前n+1小的数的和,若不满足则无解。取b中最大值先作前缀和试试,接下来要在其余n+1个数找n个数使得它们的和等于这个前缀和,舍弃的那个数作x即可。)作为前缀和,那么次大值和最大值中只有一个作随机数,另一个必然加入前缀和的成员,又相互矛盾,所以不必继续讨论。思路:因为有个数是其他数的前缀和,所以这个数肯定很大,考虑到。原创 2023-04-13 23:47:49 · 65 阅读 · 0 评论 -
Codeforces Round #713(Div. 3) - C. A-B Palindrome
思路:首先预处理一下整个字符串s,对于从左开始扫的字符和从右开始扫的字符中一个是?一个是0/1的情况,我们先将他们补充完整,并判断无解,后从左往右扫描一遍得到的字符串,对a与b的个数删减,接下来我们要处理的就是成对的问号,在这里我们只扫描左半边,并贪心的思考将max(a,b)对应的字符进行填补,同样删减a,b.然后最后对于字符串原长是奇数的情况,我们还剩一个?你可以用0/1代替作为一次操作,现要求你经过若干次操作后将原字符串s变成由a个0,b个1组成的回文字符串,若可行,输出结果字符串ans;原创 2023-04-13 20:41:41 · 222 阅读 · 1 评论 -
Educational Codeforces Round 146 (Rated for Div. 2) A - B
对于答案统计中Ceil的解释:对于某个步长i,a or b对于 i 的最小步数只需要比 a/i or (b/i)多走一步就行,因为我们可以边增加步长边走路补偿(可以取到[0,i-1]中的某个数去补偿)如果a、b是整数,那么一定存在x、y,使ax+by=gcd(a,b),换句话说,如果ax+by=k有解,那么k一定是gcd(a,b)的若干倍。一开始对于步长i,我的判断是 i 取特值gcd(a,b)或min(a,b)或者是a和b的因子,全然没想到去枚举…原创 2023-04-12 19:32:58 · 161 阅读 · 0 评论 -
CF739 Div3 - D. Make a Power of Two
总结:给你一个整数n,对于这个数你有2个操作,No1.是删除任意位上的一个数;No2.是向右边插入任意一个数,现在我们要将这个给定的数经过上述操作转变为2的幂次方数,问最少的操作次数?删删补补会爆int,所以想到是个字符串匹配问题。先将所有2的次幂的数处理出来用于匹配目标数。枚举这些数,找到最大的匹配结果。原创 2023-04-11 21:01:52 · 101 阅读 · 1 评论