把博客园图标替换成自己的图标
把博客园图标替换成自己的图标end

08 2020 档案

摘要:题面传送门 题目要求有多少个ij使的l\leq \sum\limits_^\leq r 用前缀和搞一下,变成lqjqr 再变换一下,变成qjrqqjl 然后动态开点线段树或者平衡树一搞就好了。 代码实现: #include<c 阅读全文
posted @ 2020-08-27 22:13 275307894a 阅读(61) 评论(0) 推荐(0) 编辑
摘要:题面传送门 显然是树剖题目,关键是怎么维护不同宗教。 对于每个宗教可以开一棵线段树,但是空间会爆。 所以可以动态开点。 代码实现: #include<cstdio> #include<cstring> #define max(a,b) ((a)>(b)?(a):(b)) using namespac 阅读全文
posted @ 2020-08-27 22:07 275307894a 阅读(43) 评论(0) 推荐(0) 编辑
摘要:题面传送门 二维dj 考虑设di,j为到达i点,还有j升油的最小花费。 那么可以拓展出两种状态,即加1升油或前往下一个城市。 代码实现: #include<cstdio> #include<cstring> #include<queue> using namespace s 阅读全文
posted @ 2020-08-27 22:02 275307894a 阅读(41) 评论(0) 推荐(0) 编辑
摘要:题面传送门 一道二分图的题目。 考虑将菜向客人,客人向房间连权值为1的边,但是这样会有重复计算。 所以将客人拆成两个点,两点之间连权值为1的边,就可以达到限制流量的目的。 代码实现: #include<cstdio> #include<cstring> #include<queue> #de 阅读全文
posted @ 2020-08-27 22:00 275307894a 阅读(39) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这道题卡空间卡到了丧心病狂的程度。 两点间路径可以转化为前缀异或值。 对于一般的这样的题目,我们可以直接在一棵trie上分治,每次选更大的一边,时空复杂度都是O(nlogw) 但是这道题卡空间,所以只能用滚动trie 何为滚动trie? 可以发现,这道题在某种意义上只有一 阅读全文
posted @ 2020-08-27 21:57 275307894a 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题面传送门 月赛中的简单题。 考虑将原数列以能量排序,那么肯定是前一半匹配后一半最优。 而匹配时优先取被覆盖次数最大的即可判断无解。 但是有一种特殊情况,就是前一半全部指向一个点。 那么把这个点特殊处理掉然后正常做即可。 代码实现: #include<cstdio> #include<queue> 阅读全文
posted @ 2020-08-24 22:05 275307894a 阅读(55) 评论(0) 推荐(0) 编辑
摘要:题面传送门 月赛中的简单题。 考虑推一波式子。 设g=gcd(bi,bj) 那么原式就是b_i+b_j+g=\frac{b_i\times b_j} big+bjg+1=big×bjg阅读全文
posted @ 2020-08-24 22:03 275307894a 阅读(52) 评论(0) 推荐(0) 编辑
摘要:题面传送门 一道圆方树的板子题。 对于每个点先让它连到环顶。 那么他到环顶的距离就是从两边走的最小值。 那么求两点间距离就可以考虑倍增了。 但是最后要考虑特殊情况 代码实现: #include<cstdio> #include<cstring> #define abs(x) ((x)>0?(x):- 阅读全文
posted @ 2020-08-24 21:57 275307894a 阅读(45) 评论(0) 推荐(0) 编辑
摘要:题面传送门 一眼就是二分图,但是考虑怎么建边。 如果暴力匹配O(nmtlogw)肯定会T飞。 卡片上的数的阈值范围很小,可以考虑欧拉筛一趟然后分解质因数。 分解质因数后对于每个质数开一个邻接表,然后对于每一个建边。 建边复杂度就变成了O(tnlogw) 代码实现: #include<cs 阅读全文
posted @ 2020-08-22 13:56 275307894a 阅读(41) 评论(0) 推荐(0) 编辑
摘要:题面传送门 考虑暴力dp:设dpi表示以i结尾的分组方案数,qi=j=1iai 那么dp_i=\sum\limits_^{dp_j[q_i-q_j\geq0]}+[q_i\geq0] 然后发现这个是一个二维偏序板子。就可以树状数组优化了 阅读全文
posted @ 2020-08-22 13:51 275307894a 阅读(41) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这是一道基环树直径的题目。 考虑对于一个基环树,只有两种情况:直径在环上,直径在半个环上与链上。 直径在环上直接搞就好了,另一种情况可以单调队列优化dp 代码实现: #include<cstdio> #include<cstring> #define max(a,b) ((a)>(b)? 阅读全文
posted @ 2020-08-22 13:45 275307894a 阅读(50) 评论(0) 推荐(0) 编辑
摘要:题面传送门 我想没有人拿一棵树状数组去模拟的吧 树状数组模拟有40分 而只要你仔细观察就会发现,其实题目要你求一个式子:2log2(n)+1n 那么题目变成了log2(n)怎么求 一个个除有60分,时间复杂度$O(t 阅读全文
posted @ 2020-08-18 15:58 275307894a 阅读(42) 评论(0) 推荐(0) 编辑
摘要:题面传送门 这东西有一个更优的复杂度。 显然可以二分,二分以后对每一维尺取后算是O(nwlogw)的,可以过去。 但是我们发现在第二维尺取时的这一维w很没有必要,换句话说,很没效率。 所以就可以用一棵权值线段树代替掉,对每一个点向后mid个贡献权值。查询时查询最大值即可。 代码实现: # 阅读全文
posted @ 2020-08-18 15:58 275307894a 阅读(47) 评论(0) 推荐(0) 编辑
摘要:题面传送门 仔细阅读题面可知,只有在这个循环矩阵内有连续k个斜着的1,那么就可以覆盖。 所以这题可以分成两部分:预处理哪些区间可以被覆盖和处理覆盖的最小区间。 处理覆盖的最小区间显然可以单调队列优化dp,设fi为覆盖到第i个且最后一个矩阵右端点在i处的最小覆盖数量。那么可得状态 阅读全文
posted @ 2020-08-17 21:56 275307894a 阅读(103) 评论(0) 推荐(0) 编辑
摘要:Day 0 发现CCF很有良心,居然搞IOI赛制,还不用组合程序。 然后,CCF发了密码,感觉好奇怪啊...... 然后晚上又发通知说密码错了...... Day 1 开局看了第一题,感觉题面很长不想做。 然后就跳了第二题。 第二题是求两点间的路径所延伸的路径中的最小值,不过我不会做.. 阅读全文
posted @ 2020-08-17 16:25 275307894a 阅读(71) 评论(0) 推荐(0) 编辑
摘要:题面传送门 动态开点线段树水水就过了。 指针版更好写。 代码实现: #include<cstdio> using namespace std; int n,m,k,x,y,z,tot=1; struct tree{int l,r,f,sum;}t[15000039]; inline void pus 阅读全文
posted @ 2020-08-16 11:47 275307894a 阅读(44) 评论(0) 推荐(0) 编辑
摘要:题面传送门 显然基环树dp 对于每个联通块找到环然后强制选和不选累计答案即可。 代码实现: #include<cstdio> #include<cstring> #include<queue> #define max(a,b) ((a)>(b)?(a):(b)) using namespace st 阅读全文
posted @ 2020-08-16 11:43 275307894a 阅读(41) 评论(0) 推荐(0) 编辑
摘要:题面传送门 很毒瘤的一道大模拟。 首先贪心让军队走到最上面的点,如果能走到根节点就停留在根节点下面。 然后查看哪几颗子树没有被封死。 对于有军队的根节点,让能走回来的军队出去调动,反之让其停留在当前节点。 然后就是细节。 代码实现: #include<cstdio> #include<cstring 阅读全文
posted @ 2020-08-16 11:41 275307894a 阅读(43) 评论(0) 推荐(0) 编辑
摘要:题面传送门 线段树离散或者动态开点都可过。 动态开点线段树只要排个序然后区间覆盖即可。 代码实现: #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n,k,tot=1; struct yy 阅读全文
posted @ 2020-08-16 11:33 275307894a 阅读(48) 评论(0) 推荐(0) 编辑
摘要:题面传送门 我们可以二分这个值。 然后验证时将所有数字减去这个值,看看有没有长度大于m权值之和大于0的子段就好了。 代码实现: #include<cstdio> #include<cstring> #include<algorithm> #define max(a,b) ((a)>(b)?( 阅读全文
posted @ 2020-08-01 20:26 275307894a 阅读(43) 评论(0) 推荐(0) 编辑

浏览器标题切换
浏览器标题切换end
点击右上角即可分享
微信分享提示