随笔分类 - 杂题
摘要:反思 写一写可以发现上限不断更新 一直在想怎么判断NO,刻板拘泥于错误的模型,想要像往常一样贪心地、读入当前值就能判断会不会NO,实际上只要构造完以后,最后把所有操作重新跑一遍看会不会冲突即可判断NO C++ include include include include using namespa
阅读全文
摘要:反思 由于受我第一次遇到的构造最多三角形的题的影响,这种几个分成一组最多多少组的题我老是往贪心上想。 事实上一般贪心也能贪,但这道题,还有突然想起的前些天做的cf140C,都是用二分可以更简单地解决,原因之一是分配最多的组数一般具有单调性。 想到二分就是水题了。
阅读全文
摘要:思路 不难想到枚举$l$,那如何高效求出最小的$r$?这样答案加上$x r+1$即可。 如果$l$并没在序列里出现……没啥想法;如果$l$是序列里的数,我们可以做的事情是记下每个数出现的每个pos。观察可以发现如果某数小于$l$且在序列里出现过,则它不会被删,则:它的区间内所有跟它不同的数得都删掉;
阅读全文
摘要:题目传送 思路是始终维护西瓜数量的区间,即L代表目前可以达到的最少的,R是最多的,然后判断一下。 C++ include using namespace std; const int maxn = 1e5 + 5; int T, n, m, a[maxn]; int main() { for (sc
阅读全文
摘要:一开始写的第一步让0和1一起走然后第二步再让0走会挂最后一个点……然后探索一下觉得主要问题在于我模拟的一步一步地走。如果这样的话9 2这个数据会使第17步他俩就碰在final点了,而实际上我们想要的效果是他们走第18步时差一格,然后第20步碰上后大家一起,所以提前碰到会炸。故而要两步两步地走才行,发
阅读全文
摘要:结论是:按位置排序好以后,对于真正的答案,走法应该是:依次走向第0个等分点,第1个等分点……这样对于这种等分情况,是最优的调度。
阅读全文
摘要:题目很简单,数据也很小,但是思路不妨借鉴:dp[i][j]代表以(i,j)为右下角的最长正方形边长。 类比一维里面设“以XX为结尾的最XXX(所求)”。 另外define不要乱用!尤其这种min套min,debug两行泪。 当然也可以无脑暴力乱搞了,二维前缀和+二分:
阅读全文
摘要:得到两个结论后为水题:1.进制一定是字母个数,否则这个表列不出来;2.对于某个字母,这行有几个两位数,这个字母的值就为多少。 判error直接暴力一遍即可。
阅读全文
摘要:传送门 思路:既然无法枚举每个情况,那就枚举每个出现过的权值,加和。那么每个权值出现了多少次呢?用总数减去一次都选不中这个数的次数即可,类似概率的方法。
阅读全文
摘要:同POJ3744写法都是一样的。 距离太长无意义可以压缩,注意不是随便压的,想一想可以跟%T发生关系。
阅读全文
摘要:起手式: 1.l = 1, r = 0;2.while循环里先用r往右试探,探到了或者到头了就停;3.然后用l往右探,不满足条件了就停;4.更新答案,然后如果发现指针没什么前途了就break出去输出答案。 主代码:
阅读全文
摘要:题目本质:因为只能往南和往东走所以不管怎么组合方案结果都是一样的Orz……我太菜了想不到嘤嘤嘤
阅读全文

浙公网安备 33010602011771号