随笔分类 - a题单
摘要:库存 GSS1 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 5 inline int read() { 6 int x=0,f=1;char ch=getchar();for(;!isdigit
阅读全文
摘要:库存 这些题目考试时费劲心思没有想出,考完后发现是一个有意思的贪心dp,挺奇妙的,没有接触过,所以记在这里,方便回顾。 数分考试 ZR提高十连测day9 T1 problem440 一共有$n$个人参加了考试。第$i$个人的名次区间是$[L_i,R_i]$。除此之外,又有$m$条其他信息,形如$u_
阅读全文
摘要:2019-02-13 P3704 [SDOI2017]数字表格:莫比乌斯反演 P3702 [SDOI2017]序列计数:快速幂+多项式 2019-02-14 P3703 [SDOI2017]树点涂色:LCT+线段树 Yahoo Programming Contest 2019 D - Ears:dp
阅读全文
摘要:2019-01-18 4543: [POI2014]Hotel加强版:长链剖分+树形dp。 3653: 谈笑风生:dfs序+主席树。 POJ 3678 Katu Puzzle:2-sat问题,给n个变量赋值(0/1),满足所有等式。 POJ 3683 Priest John's Busiest Da
阅读全文
摘要:POJ 1149 PIGS 链接 #include<cstdio> #include<algorithm> #include<cstring> #include<iostream> #include<cmath> #include<cctype> #include<set> #include<que
阅读全文
摘要:很久没写过这东西了,复习一波。 3238: [Ahoi2013]差异 链接 单调栈维护height数组,由于height是递增的,所以维护单调栈中维护每个height出现的次数。(还可以两遍单调栈求一个点是最小值的区间) 1 #include<cstdio> 2 #include<algorithm
阅读全文
摘要:CF 1061 D. TV Shows 贪心:两条线段一定是挨的最近的连起来,感性的理解,和距离远的合一定不和近的合更优。 所以按左端点排序,将右端点放到一个set里,然后对于每个线段找小于这个线段左端点的最远的点,考虑时候合起来。 另一种方法,将每个点拆成两个,分别是左端点的点,和右端点的点,然后
阅读全文
摘要:复习一波平衡树! 3224: Tyvj 1728 普通平衡树 链接 怎么能少得了这道题呢。 1 #include<cstdio> 2 #include<cctype> 3 4 const int N = 1000100; 5 6 int siz[N],ch[N][2],fa[N],cnt[N],da
阅读全文
摘要:2018-12-07 bzoj3172:AC自动机,建出fail树,加入一个字符串在fail树的链上每个点+1,每个点的答案为子树中的所有点权的和。 bzoj3110:整体二分+线段树。 2018-12-09 HDU2825:AC自动机+状压dp。 HDU6086:AC自动机+状压dp bzoj24
阅读全文
摘要:bzoj5310:退背包。 bzoj1097:最短路+状压dp。 bzoj1098:反向图联通块个数。链表+bfs。 bzoj1054:bfs bzoj1027:Floyd最小环 bzoj1018:用线段树维护区间的四个端点的联通情况,然后查询的时候,把所有覆盖到的区间合并起来即可。 bzoj103
阅读全文
摘要:2140: 稳定婚姻 1 /* 2 求联通分量。 3 */ 4 #include<bits/stdc++.h> 5 using namespace std; 6 typedef long long LL; 7 8 inline int read() { 9 int x=0,f=1;char ch=g
阅读全文
摘要:HDU1028 Ignatius and the Princess III 代码 1 #include<cstdio> 2 #include<algorithm> 3 #include<iostream> 4 5 using namespace std; 6 7 int a[130],b[130];
阅读全文
摘要:dp练习。 codevs 1048 石子归并 区间dp 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<cmath> 5 #include<iostream> 6 7 using namespace st
阅读全文
摘要:splay区间增减查询 1 #include<cstdio> 2 #include<algorithm> 3 4 using namespace std; 5 6 const int N = 500100; 7 const int INF = 1e9; 8 typedef long long LL;
阅读全文
摘要:tarjan poj 3352 Road Construction 求最少添加几条边才能使所给无向图变成边双连通图。 求出边双,缩点成一个树,之后统计树上的点度数为1的点的个数cnt,(cnt+1)/2就是答案。 定理:任意一颗无向图的树,成为双连通图,则需要增加的边数为(这棵树上所有度数为1的结点
阅读全文
摘要:Tarjan算法及其应用 引入 tarjan算法可以在图上求解LCA,强连通分量,双联通分量(点双,边双),割点,割边,等各种问题。 这里简单整理一下tarjan算法的几个应用。 LCA http://www.cnblogs.com/mjtcn/p/6852646.html 强联通分量 有向图的 强
阅读全文
摘要:整理一些树的,基本的,简单的一些知识。 先写一下关于树的许多定义。 树,父节点、子节点、子树、祖先、兄弟、根节点、叶节点、直径、路径、重心、直径、最近公共祖先、生成树、dfs序,树形dp等 1、最近公共祖先 一般用倍增求LCA(Least Common Ancestors)。 按照朴素的做法,就是深
阅读全文

浙公网安备 33010602011771号