上一页 1 2 3 4 5 6 7 ··· 18 下一页
摘要: #include<bits/stdc++.h> //#pragma comment(linker, "/STACK:1024000000,1024000000") #include<stdio.h> #include<algorithm> #include<queue> #include<strin 阅读全文
posted @ 2018-03-08 16:42 Drenight 阅读(309) 评论(0) 推荐(1) 编辑
摘要: 做状态更新是使用[ qi - pi , m - pi ]去更新[ qi , m ],对于第i个物品前者是利用域,后者是更新域。 当m足够大,两个区间会产生相交,这段相交会更新在从dp[m]向前一段等长上,更新为为w1+w2 先1的交区间是[ q1 , m - p2],先2的交区间是[ q2 , m 阅读全文
posted @ 2018-03-08 15:59 Drenight 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 发现cf文本读确实变快了,但是用了快读树剖还是过不了2e5,好像常数大了4?后来才想起来这是离线的树链改值,差分就行了跪了的树剖:#include //#pragma comment(linker, "... 阅读全文
posted @ 2018-03-07 20:01 Drenight 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 需要用树状数组维护01序列前缀和,并且查找某个位置的前缀和是k,也就是前面有k个1这个可以用二分,两个log,但是用倍增就是一个log不得不说树状数组和倍增的相性真的很好,倍增到的节点维护信息与上一级完全... 阅读全文
posted @ 2018-03-04 17:23 Drenight 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 这个写法就能高效查集合大小了const int maxn=1e2+43;int fa[maxn],n;void init(){for(int i=1;i<=n;i++)fa[i]=-1;}int find... 阅读全文
posted @ 2018-03-04 15:23 Drenight 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 整理一下线段树合并的思路,大体是给每个树上节点分配一个根编号建一棵log长的权值线段树,一开始树上只有这个树节点的节点权merge两个树节点的时候,对于当前合并的值域(例如两棵线段树的表示1到n/2的节点... 阅读全文
posted @ 2018-03-02 00:22 Drenight 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 两种做法,因为是求整个子树的值域问题所以可以按dfs序把进点和出点的数量作差#include //#pragma comment(linker, "/STACK:1024000000,102400000... 阅读全文
posted @ 2018-03-01 22:31 Drenight 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 首先竞赛图保证是一定有哈密顿路径的,强连通的竞赛图一定有哈密顿回路竞赛图求每个点的最长链,不重复经过点思路就是对每个scc求出哈密顿回路,再按拓扑序n^2dp一下哈密顿路径和哈密顿回路的构造法看的这篇文章... 阅读全文
posted @ 2018-02-28 20:37 Drenight 阅读(231) 评论(0) 推荐(0) 编辑
摘要: 还是链表跟二叉堆的双映射//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #include #include... 阅读全文
posted @ 2018-02-24 11:02 Drenight 阅读(113) 评论(0) 推荐(0) 编辑
摘要: ull的读写用%llu,二维哈希跟二维前缀和是一个方法//#include //#pragma comment(linker, "/STACK:1024000000,1024000000") #in... 阅读全文
posted @ 2018-02-22 12:18 Drenight 阅读(222) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 ··· 18 下一页