11 2020 档案
摘要:http://codeforces.com/problemset/problem/461/B 感觉这题有点玄学阿。。。。。怎么说呢。。。 状态1是x在有黑色的区域里面,状态0是只在白色区域里面,其实看一眼代码就懂了,一直想不出来我很难过。。。。 好菜呀,还要继续学树形dp才行阿 #include<i
阅读全文
摘要:https://codeforces.com/problemset/problem/1322/C 快乐 核心在于 gcd(a,b) == gcd(a+b,a,b) 加法不会影响和的gcd,所以本质就不是那么多了 既然是gcd,那就枚举出左边尽可能不重合的右边权值的GCD吧, #include<ios
阅读全文
摘要:https://codeforc.es/contest/1454/problem/E 看样例就能看懂题意,就是找基环树的环,然而我环找错了。。。。。。 我是sb,我要学图!!! #include<iostream> #include<cstring> #include<algorithm> #inc
阅读全文
摘要:这个题很绕,记数字i前面有cns[i]个数字比他大,逆序对个数就是sigmi cns[i] 反转k次就是让cns[i] - k (i>=1 && i <= n) 而且cns[i]不能有负数 利用两个线段树维护一下,就是有点绕。。。。 #include<iostream> #include<cstri
阅读全文
摘要:给一堆数字,每个数字找和自己异或最小的连接,现在求删除最少几个点能留下一棵树 就是分治搞树,第i位置都是0的之间有边,i位为1的数字之间有变,类似树形dp的分治一下就得出结论了, 第i为是1的要和第i为是0的连接,只能是i位为1的集合都消除了才可能,具体看代码吧,挺简单的。。。。 #include<
阅读全文
摘要:这个问题的核心在于用线段树找最长的连续的1 的位置,其他就基本操作了,不是很难想,只是不好写而已,具体看代码吧,没什么巧妙的东西,和那个贪婪大陆一样 #include<iostream> using namespace std; typedef long long ll; const int max
阅读全文
摘要:问的就是 每次给你区间 l--r,每次覆盖一种不同的颜色,查询l--r有多少种不同的颜色 这个问题本质是在问区间l--r有多少不同的区间,利用前缀和计算一下,具体看代码 #include<iostream> #include<queue> #include<cstring> using namesp
阅读全文
摘要:https://codeforces.com/problemset/problem/1428/E 是个贪心,真的玄学阿。不太明白是怎么回事。 样例能看出来,肯定不是只把一个分成两份,那就枚举。分成两份的也有机会分成三份,这样就公平了,谁贡献大就分谁 #include<iostream> #inclu
阅读全文
摘要:没啥天赋,不够努力,打铁活该,就是这样。 不认也得认了,没想到ICPC更残酷,基本白干了,就这样吧
阅读全文
摘要:https://www.luogu.com.cn/problem/P2894 线段树区间连续最大的1的个数,加上区间修改,lazy覆盖。虽然不难,写出来还是很interesting的。。 具体看代码吧 #include<iostream> #include<cstring> #include<que
阅读全文
摘要:https://www.luogu.com.cn/problem/P3391 这平衡树太厉害了。 思想就是分裂成1--x-1 x y y n三段,然后给x y这段树打上lazy标记, 在合并和分裂时候都要先下传标记才行 具体看代码就好,留个模板记录一下 #include<iostream> #inc
阅读全文
摘要:https://www.luogu.com.cn/problem/P3369 随机大法好啊啊啊 插入数字的时候,把平衡树按x分裂,插入x后再合并,具体可以看代码 #include<iostream> #include<algorithm> #include<cstdio> #include<ctim
阅读全文
摘要:https://codeforces.com/problemset/problem/1417/E 正解: 从二进制最高位开始算,不断分开分开就是答案了。 每一位存下来按照01分开,贪心做事情,具体看代码吧,挺简单 #include<iostream> #include<vector> using n
阅读全文
摘要:这个题可以尺取也可以权值线段树,我选择了权值线段树动态开点 我是sb 把数组按照a排序 1.如果没有人选a,那么分数线就按照b的最大值算 2.如果选了ai,那比ai小的aj都要选(贪心) 3.数字很大记得动态开点 没事了 非常可惜,其实我已经想到一半以上了,可惜看错了题。。。。秦皇岛两个铜题都很简单
阅读全文
摘要:https://codeforc.es/problemset/problem/1389/E 其实就是让你列公式自己算一次, (x*d - d + y) %w = (y*d - d + x)%w 最后化简成 : (d-1)*(y - x)%w = 0; 可知y-x(y > x)必须是w/gcd (d-
阅读全文
摘要:这是一个非常有趣(not intersting)的题 传送门 https://www.luogu.com.cn/problem/P6554 dp[x] = sigm dp[p] + list[x]*cnt[x] ans = dp[x] / cnt[x] 利用换根dp枚举一下就好了,转移有点恶心,因为
阅读全文