codeforces
肩上杯雪
自强不息,知行合一
展开
-
Codeforces Round #653 (Div. 3) D. Zero Remainder Array
题意给定一个长度为n的数组nums初始化一个x = 0, 每次你可以有两种操作:1)x ++2)nums 任意一个元素 + x。其中每个元素最多加一次x。最终目的是让数组中每个元素都能被给定的一个k整除。思路 :对于一个数 tmp,我们考虑两种情况:1) tmp < k若是tmp + x mod k = 0, 则可以得到 tmp = A*k - x.可知如果要得到结果,x from 1 to k 这样的更新迭代期间,便可让tmp得到最终结果。如果其中有两个相同数值的tmp,则.原创 2020-06-29 15:52:23 · 163 阅读 · 0 评论 -
Educational Codeforces Round 90 D.Maximum Sum on Even Positions
题意:给定一个数组,设其偶数位置(0, 2, … 2k)上的元素和为sum。我们可以对任意一个子数组,最多逆转一次。计算能得到的最大的sum。思路首先我们可以想到,如果逆转的子数组length是奇数,则不会有任何变化。例如 1 2 3 4,逆转长度为3的子数组,可以发现其sum不变。那么我们便观察,逆转偶数长度的子数组。例如 7 8 4 5 7 3我们逆转长度为4的子数组——5 4 8 7 7 3,可以发现其sum = 5 + 8 + 7,相对于 7 + 4 + 7,变化了(8-7) + .原创 2020-06-28 21:11:26 · 222 阅读 · 0 评论 -
Codeforces 1373C - Pluses and Minuses
题目含义:本题并不是让你复现给的代码,而是以更简单的时间复杂度实现。题目思路:相当于找规律,首先打印出example1 里的变量改变情况。可以从上图看出,每次cur初始值递增,相当于设定了一个界限min, cur < min时,更新这个界限为 cur;同时res增加的部分,相当于 遍历的步长i + 1。因为每次都从头遍历一遍,而cur递增,前面的部分一样。 最后ans += len(str),因为从头到尾遍历了一遍此字符串。举例说明, --±。 初试 cur = min = ans = .原创 2020-06-27 17:14:39 · 387 阅读 · 0 评论 -
ACM 组合数求解
前言:因为之前做了一道cf上面的题,需要用到组合数,并且数据过大,于是学习了一下在可能会爆精度的情况下组合数的求法。公式:知识准备一、欧几里得算法即我们常说的“辗转相除法”,用来求a和b的最大公约数(greatest common divisor)int gcd(int a,int b){ return b == 0 ? a : gcd(b,a%b);}...原创 2020-03-14 00:12:50 · 595 阅读 · 3 评论 -
Codeforces 1017 problem C
题目链接 :http://codeforces.com/contest/1017/problem/C题意 :给定一个数n,构造这样一个数列: 长度为n其中数字为1-n的整数,并且每个数字只出现一次它的LIS(最长递增子序列)和LDS(最长递减子序列)的和sum 最小。思路 :因为考虑到LIS和LDS的和,可以把这1-n个数分成m个区间,其中每个区间之内满足递增,每个区间之间满足递减。而...原创 2018-08-19 20:57:08 · 250 阅读 · 0 评论 -
Codeforces 1031 problem B——Curiosity Has No Limits
题目链接 :http://codeforces.com/contest/1031/problem/B题意 :给你两个数组a和b,他们的长度是n-1,问有没有一个ans数组满足 ans[i] | ans[i-1] = a[i-1] 同时 ans[i] &amp; ans[i-1] = b[i-1] (i &gt; 2)。思路 :因为题面给出了 0&lt;=ai&lt;=3 0&lt;=bi&l...原创 2018-10-24 19:49:22 · 191 阅读 · 0 评论