上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 28 下一页
摘要: tarjan 缩点,跑个最长路。 cpp include include include include include using namespace std; const int N=500005; vectorG[N],V[N]; int n,m,ecnt,head[N],val[N],S,p 阅读全文
posted @ 2018-07-24 21:40 SWHsz 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 正难则反,离线下来并查集反的修建就行了。修建的时候判定一下两边现在是不是在一个并查集里,并且是不是现在都没有被摧毁即可。 cpp include include include using namespace std; const int N=400005; int n,m,fa[N],ans[N] 阅读全文
posted @ 2018-07-24 16:36 SWHsz 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 建一个反图跑个最短路,然后记忆化搜索一下。 (很迷的是堆优化dij就wa了,线段树优化的和spfa就A了。)(求dalao看看我的堆优化dij是不是打错了,但是过了80分)。 spfa的AC代码: cpp include include include include include include 阅读全文
posted @ 2018-07-24 12:00 SWHsz 阅读(160) 评论(0) 推荐(0) 编辑
摘要: T1: 2000的数据显然不能矩阵乘法。 考场上忘了矩阵乘法怎么写了,手推了一下,结果突然发现有公因式Orz 提取一下公因式,就可以有O(nm)的解法了。。。(忘了矩乘海星) cpp include include include include using namespace std; const 阅读全文
posted @ 2018-07-23 16:27 SWHsz 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 左偏树。 从下往上求每个子树的战斗力最大值。如果付出的薪水大于m,那么就pop了子树中最贵的那个点,把所有的子树合并起来,用左偏树维护。 (好像所有的master都是1号点....) cpp include include include using namespace std; const int 阅读全文
posted @ 2018-07-22 19:29 SWHsz 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 期望dp 不考虑打的顺序,只要最后能把地图都装下就行了,因此把概率和容量装进一个结构体里面,把地图放后面。 记一个状态f[i][j][k]表示前i个比赛,赢了j场,容量k的期望,转移即可。 cpp include include include using namespace std; const 阅读全文
posted @ 2018-07-22 00:05 SWHsz 阅读(114) 评论(0) 推荐(0) 编辑
摘要: 斜率优化dp。 显然,如果一个土地的长,宽都小于另一个土地,那么就一定能被免费打包带走,排个序~~(或许只有我因为这个调了半天)~~,去一下这些没用的。 一个$O(n^2)$的显然做法:以f[i]表示买了前i块土地最小花费。 $f_i=f_j+len_i \cdot width_{j+1} (1 i 阅读全文
posted @ 2018-07-21 20:41 SWHsz 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 树形DP。 每个点有两个属性:黑色点的权值和,白色点权值和,一个知道另一个也一定知道。 因为只要子树的和它相等的点得权值和不超过x[u],u点的权值总能将其补齐。 设计状态f[u]表示以u为根的子树,和u颜色不同的最小权值和,树形背包转移。 cpp include include include u 阅读全文
posted @ 2018-07-21 19:36 SWHsz 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 用可持久化线段树维护可持久化数组。可持久化线段树见之前发的主席树模板 cpp include include include using namespace std; int n,m; const int N=22000001; int rt[N],l[N],r[N],t[N],cnt; int b 阅读全文
posted @ 2018-07-20 21:39 SWHsz 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 有人恶意刷难度。。。就一个最大流模板。。。 但是题面吼啊2333 cpp include include include include using namespace std; int n,m; const int N=505,S=0,T=504; char s1[105][10],s2[105] 阅读全文
posted @ 2018-07-20 21:05 SWHsz 阅读(147) 评论(0) 推荐(0) 编辑
上一页 1 ··· 13 14 15 16 17 18 19 20 21 ··· 28 下一页