
思维
思维
璇玑你没有心
这个作者很懒,什么都没留下…
展开
-
B. Zero Array(cf)思维
原题链接:Problem - 1201B - Codeforces题目大意:给你n个数(n >= 2),每次选择两个数然后把它们分别减1,问你最后整个数列能不能都为0。思路:1.相当于一次减2,最后整个序列的和要为0,那么整个序列的和应该是偶数才行,如果是奇数就直接pass掉;2.如果数列中最大的数比整个数列的和的一半还大,那么在删除过程中最后这个值是还会多出来值删不掉的,所以如果有这样的情况也不能满足。AC代码:#include<bits/stdc++.h>.原创 2022-03-03 23:47:02 · 164 阅读 · 0 评论 -
B. Polo the Penguin and Matrix(cf)思维、中位数
原题链接:Problem - 289B - Codeforces题意:给你一个n * m的矩阵和一个值d,对于每个数都可以进行无数次加d和减d的操作,问你最少操作次数是多少,能使矩阵每个数都一样。其实与矩阵无关,所有数相当于一个数组中的所有元素。如果想要一个数组中每个数的值变成一样,求整个数组每个数加减数的和最少是多少。每个数要变成中位数是最近的,所以求出每个数离中位数之间差距是多少就可以了sum += abs(a[i] - a[mid]);注意:sort数组之后,n为奇数时中位数下标(n原创 2022-02-27 13:16:08 · 141 阅读 · 0 评论 -
A. As Simple as One and Two(cf)思维
原题链接:Problem - 1276A - Codeforces题目大意:给你一个字符串,只有小写字母,然后希望字符串里没有one/two这两个字符串,问你最小删除字母数。这题tag是dp,但是其实就是思维 + 贪心,不要被tag迷惑了!1.想想看,对于一个单独的one或two:对one,如果有段序列:ooonee,删除o和e都没有删除n高效。我们要删除肯定是因为串里有one,所以n在中间肯定只有一个,那么我们删除n就是最佳的了,同理对two也是。2.特殊情况:如果存在twone原创 2022-02-26 21:03:14 · 234 阅读 · 0 评论 -
E. Air Conditioners(cf)思维
原题链接:Problem - 1547E - Codeforces暴力肯定会炸观察一下发现(其实我也没发现,看了大佬们题解才发现)根据下标相减绝对值的规律,当格子里没有空调的时候,其实每一个格子的值应该是它左边相邻格子的值加1或者右边相邻格子的值加1,取这两者其中小的那个。感觉有点递推的意味,左边从左到右推一遍,从右到左推一边就ok了;最左边的值只跟它右边的值有关,所以从左到右循环的时候从第二个值开始,a[i] = min(a[i], a[i-1] + 1),从右到左同理#includ原创 2021-12-11 21:37:58 · 573 阅读 · 0 评论