摘要:
区间动态规划问题一般都是考虑,对于每段区间,他们的最优值都是由几段更小区间的最优值得到,是分治思想的一种应用,将一个区间问题不断划分为更小的区间直至一个元素组成的区间,枚举他们的组合 ,求合并后的最优值。设F[i,j](1n then break; // 这个if很关键。for k:= i to j...
阅读全文
posted @ 2015-06-24 08:46
AutSky_JadeK
阅读(343)
推荐(0)
摘要:
http://www.cnblogs.com/mmlz/p/4497118.html#include#includeusing namespace std;int n,K,nn,a[1000001],sumv[1000002];bool check(int x){ int cnt=0,i; ...
阅读全文
posted @ 2015-06-18 21:53
AutSky_JadeK
阅读(291)
推荐(0)
摘要:
http://www.cnblogs.com/rausen/p/4138233.html#include#includeusing namespace std;#define MOD 1000000007int n;bool Not[1000001];int pr[1000001],e,ci[100...
阅读全文
posted @ 2015-06-18 21:52
AutSky_JadeK
阅读(250)
推荐(0)
摘要:
http://blog.csdn.net/zhb1997/article/details/38474795#include#include#includeusing namespace std;typedef long long ll;int n,m;ll ans;int main(){// fr...
阅读全文
posted @ 2015-06-18 21:50
AutSky_JadeK
阅读(178)
推荐(0)
摘要:
#includeusing namespace std;#define N 10001int n;int v[N(n>>1)) return 0; for(int i=first[U];i;i=next[i]) if(v[i]!=fa[U]&&size[v[i]]>(n>>...
阅读全文
posted @ 2015-06-18 21:49
AutSky_JadeK
阅读(153)
推荐(0)
摘要:
#include#include#includeusing namespace std;#define EPS 0.0000001#define N 511typedef double db;const db PI=acos(-1.0);struct Point{db x,y;};typedef P...
阅读全文
posted @ 2015-06-18 21:48
AutSky_JadeK
阅读(138)
推荐(0)
摘要:
http://m.blog.csdn.net/blog/qpswwww/44105605#include#include#includeusing namespace std;#define EPS 0.0000001#define N 311typedef double db;const db P...
阅读全文
posted @ 2015-06-18 21:47
AutSky_JadeK
阅读(123)
推荐(0)
摘要:
#include#include#include#includeusing namespace std;#define N 50001int v[N=n) return; T[x]+=op; if(!T[x]) --sumv[nu2[x]]; else if(o...
阅读全文
posted @ 2015-06-18 21:45
AutSky_JadeK
阅读(150)
推荐(0)
摘要:
#include#include#includeusing namespace std;#define N 500001#define INF 2147483647#define KD 2//ά¶ÈÊýint qp[KD],disn;int n,root;bool dn;struct Node{ ...
阅读全文
posted @ 2015-06-18 21:44
AutSky_JadeK
阅读(140)
推荐(0)
摘要:
#include#include#includeusing namespace std;#define N 500001#define INF 2147483647#define KD 2//ά¶ÈÊýint qp[KD],disn;int n,root;bool dn;struct Node{ ...
阅读全文
posted @ 2015-06-18 21:43
AutSky_JadeK
阅读(162)
推荐(0)
摘要:
同p2626。由于K比较小,所以不必用堆。#include#include#include#includeusing namespace std;typedef double db;#define N 50001#define INF 2147483647.0#define KD 5//ά¶ÈÊý...
阅读全文
posted @ 2015-06-18 21:42
AutSky_JadeK
阅读(138)
推荐(0)
摘要:
用堆记录答案。看看当前点是否比堆顶更优。#include#include#include#include#includeusing namespace std;typedef double db;#define N 100001#define EPS 0.0000001#define INF 999...
阅读全文
posted @ 2015-06-18 21:40
AutSky_JadeK
阅读(137)
推荐(0)
摘要:
枚举每个点,计算离他最近的和最远的点。#include#include#includeusing namespace std;#define N 500001#define INF 2147483647#define KD 2//ά¶ÈÊýint qp[KD],disn,disx;int n,ro...
阅读全文
posted @ 2015-06-18 21:39
AutSky_JadeK
阅读(120)
推荐(0)
摘要:
分四种情况讨论:a,b>=0a,b=0,b=0然后每次检验是否进入一个矩形框 或者 是否直接利用这个矩形框的答案 仅仅利用两个对角的坐标进行更新即可。#include#include#includeusing namespace std;typedef long long ll;#define N ...
阅读全文
posted @ 2015-06-18 21:38
AutSky_JadeK
阅读(238)
推荐(0)
摘要:
Orz zyf教给蒟蒻做法 蒟蒻并不会这题正解……(可持久化树套树?。。。Orz 对于每个点,我们可以求出pre[i],nex[i],那么询问的答案就是:求max (a[i]),其中 i 满足(pre[i]qrandi∈[ql,qr]) 然后我们以(i,pre[i],nex[i])为坐标……将...
阅读全文
posted @ 2015-06-18 21:34
AutSky_JadeK
阅读(238)
推荐(0)
摘要:
同p1176。#include#include#includeusing namespace std;#define N 200011#define KD 2//ά¶ÈÊýint qp[2][2];int n,root=1,m;bool dn;struct Node{ int minn[KD...
阅读全文
posted @ 2015-06-18 21:32
AutSky_JadeK
阅读(409)
推荐(0)
摘要:
二维莫队,对n和m分别分块后,对块从上到下从左到右依次编号,询问以左上角所在块编号为第一关键字,以右下角标号为第二关键字排序,转移时非常厉害。O(q*n*sqrt(n))。#include#include#includeusing namespace std;#define N 201#define...
阅读全文
posted @ 2015-06-18 21:31
AutSky_JadeK
阅读(585)
推荐(0)
摘要:
裸题不多说,注意在sqrt(n*log(n))次插入后重构树以保持深度。#include#include#includeusing namespace std;#define N 170011#define KD 2//ά¶ÈÊýint qp[2][2];int n,root=1,m;int Be...
阅读全文
posted @ 2015-06-18 21:24
AutSky_JadeK
阅读(165)
推荐(0)
摘要:
离线所有操作,对所有可能存在的点建立kd-tree,add相当于权值+1,cancel相当于权值-1。修改操作要记录kd-tree上每个点的fa,从底向上地进行修改。优化:若一个矩形框的sumv==0,则不进入。记录矩形框的面积时只记录“有意义”的点的(权值为0的不管)。#include#inclu...
阅读全文
posted @ 2015-06-18 21:23
AutSky_JadeK
阅读(251)
推荐(0)
摘要:
题意就是找0到n有多少个数中含有49。数据范围接近10^20DP的状态是2维的dp[len][3]dp[len][0] 代表长度为len不含49的方案数dp[len][1] 代表长度为len不含49但是以9开头的数字的方案数dp[len][2] 代表长度为len含有49的方案数状态转移如下dp[i]...
阅读全文
posted @ 2015-06-18 21:19
AutSky_JadeK
阅读(127)
推荐(0)
摘要:
**复数**关于复数的一些常用知识和运算法则**定义与表示**首先令$i^2=-1$复数是指能写成$a+bi$的数,其中$a$是实部,$b$是虚部,$i$为虚数单位。**四则运算**$$(a+bi)+(c+di)=(a+c)+(b+d)i$$$$(a+bi)-(c+di)=(a-c)+(b-d)i$...
阅读全文
posted @ 2015-05-29 22:16
AutSky_JadeK
阅读(745)
推荐(0)
摘要:
这是一个未被验证过正确性的判断有根树同构的哈希函数。可以记忆化搜索或者dfs求得。f(u)表示以u为根的子树的哈希值。size(u)表示以u为根的子树的大小。son(u)表示u的儿子数量。chi表示u的第i个儿子。p为种子。O(n)。typedef unsigned long long ull;#d...
阅读全文
posted @ 2015-05-29 22:03
AutSky_JadeK
阅读(739)
推荐(1)
摘要:
1、交换律 A∪B=B∪A,A∩B=B∩A;2、结合律 A∪(B∪C)=(A∪B)∪C, A∩(B∩C)=(A∩B)∩C;3、分配律 A∪(B∩C)=(A∪C)∩(B∪C), A∩(B∪C)=(A∩C)∪(B∩C),4、同一律 A∪∅=A,A∩U=A, A∪U=U,A∩∅=∅...
阅读全文
posted @ 2015-05-27 16:27
AutSky_JadeK
阅读(4511)
推荐(0)
摘要:
一、一般多项式除法二、综合除法(一般多项式除以形如x-a的多项式)非常好证明,除了最高次项,被除式的每一项系数都可以被分解为两部分,x*商的较低一项、a*商的同次项。因此用【被除式的第i项系数】减去【a*商的第i项系数】即为商的第i-1项系数。三、综合除法(除数中x的系数不为1)四、综合除法(一般)...
阅读全文
posted @ 2015-05-27 15:18
AutSky_JadeK
阅读(3342)
推荐(0)
摘要:
很像背包。这种在一个数轴上进行操作的题常常需要对区间排序。f[i][j]表示距离到i时,花费为j时的权值之和。f[x[i]+l[i]][j+c[i]]=max{f[x[i]][j]+w[i]}(1#include#includeusing namespace std;struct Line{int ...
阅读全文
posted @ 2015-05-18 17:23
AutSky_JadeK
阅读(258)
推荐(0)
摘要:
显然#includeusing namespace std;int n,ans;int sqr(int x){return x*x;}int main(){ scanf("%d",&n); for(int i=0;i*i<=n;++i) for(int j=0;j*j+i*i<=n;++j) ...
阅读全文
posted @ 2015-05-18 14:58
AutSky_JadeK
阅读(259)
推荐(0)
摘要:
分开维护树的入栈序和出栈序,用两棵线段树。回答时就是用一颗的减去另一棵的。#include#includeusing namespace std;typedef long long ll;#define N 100001ll sumv[2][N>1)); sumv[o][rt>1); d...
阅读全文
posted @ 2015-05-15 09:46
AutSky_JadeK
阅读(161)
推荐(0)
摘要:
设f[u]为从度数0到u的路径条数,f2[u]为从u到n的路径条数。ans=max{f[x[i]]*f2[y[i]]}(1#include#includeusing namespace std;#define N 5001typedef long long ll;#define M 50001int...
阅读全文
posted @ 2015-05-14 18:25
AutSky_JadeK
阅读(228)
推荐(0)
摘要:
f[i]=min{f[i+1]+1,f[i+len[j]+cant]+cant}(for i=L-1 downto 0)(1#include#includeusing namespace std;int n,m;string s,words[601];int f[302];int main(){ s...
阅读全文
posted @ 2015-05-14 17:13
AutSky_JadeK
阅读(209)
推荐(0)
摘要:
http://hzwer.com/2831.html#include#include#includeusing namespace std;typedef long long ll;typedef vector vec;typedef vector mat;ll n,MOD;mat operator...
阅读全文
posted @ 2015-05-14 09:52
AutSky_JadeK
阅读(199)
推荐(0)
摘要:
对操作序列分块,每S次暴力重建主席树。当S=sqrt(n*log(n))时,复杂度为O(m*sqrt(n*log(n)))。在线的。#include#include#includeusing namespace std;#define N 500001#define M 200001struct P...
阅读全文
posted @ 2015-05-14 08:30
AutSky_JadeK
阅读(670)
推荐(0)
摘要:
样例输入4 20 1 1 00 0 1 00 0 0 11 0 0 0样例输出6#include#includeusing namespace std;typedef vector vec;typedef vector mat;int n,m;mat operator * (const mat &a...
阅读全文
posted @ 2015-05-13 15:35
AutSky_JadeK
阅读(628)
推荐(0)
摘要:
题目大意:F[0]=0F[1]=1F[n+2]=F[n+1]+F[n]求F[n] mod 104。F[n+2]F[n+1]=1110*F[n+1]F[n]记这个矩阵为A,则有:F[n+1]F[n]=An*F[1]F[0]=An*10然后可以快速幂#include#includeusing names...
阅读全文
posted @ 2015-05-13 10:39
AutSky_JadeK
阅读(237)
推荐(0)
摘要:
状压DP裸题,将({当前车票集合},当前顶点)这样一个二元组当成状态,然后 边权/马匹 当成边长,跑最短路或者DAG上的DP即可。#include#include#includeusing namespace std;typedef double db;#define INF 2147483647....
阅读全文
posted @ 2015-05-13 09:12
AutSky_JadeK
阅读(153)
推荐(0)
摘要:
#include#includeusing namespace std;#define N 10001int n,m,a[N],f[N][501];int main(){ scanf("%d%d",&n,&m); for(int i=1;ij) f[i][0]=max(f[i][0],f[i-j][...
阅读全文
posted @ 2015-05-12 17:12
AutSky_JadeK
阅读(176)
推荐(0)
摘要:
f(i,j)表示当前牛的集合为i,最后一个牛为j时的方案数。f(i∪{k},k)+=f(i,j) //k∉i&&j∈iinit:f({i},i)=1 //0#includeusing namespace std;typedef long long ll;#define N 17int n,m,a...
阅读全文
posted @ 2015-05-12 15:49
AutSky_JadeK
阅读(177)
推荐(0)
摘要:
给定一张带权有向图,要求从顶点0出发,经过每个结点恰好一次后再返回0,求边权和的最小值。2#include#includeusing namespace std;#define N 16#define INF 214748364#define M 250int n,m;int v[M>v[i]&1)...
阅读全文
posted @ 2015-05-12 10:20
AutSky_JadeK
阅读(254)
推荐(0)
摘要:
考虑向一个集合里添加一个数,它们的gcd要么不变,要么变成原gcd的一个约数。因此不同的gcd只有log个。所以对于每个位置,维护一个表,存储从这个位置向前所有的不同的gcd及其初始位置,然后暴力更新答案,反正这个表不会很长。#include#include#includeusing namespa...
阅读全文
posted @ 2015-05-12 07:52
AutSky_JadeK
阅读(145)
推荐(0)
摘要:
sa在清空方面存在一些奇怪的问题……难以ac。(留坑?)
阅读全文
posted @ 2015-04-29 17:37
AutSky_JadeK
阅读(144)
推荐(0)
摘要:
连续重复子串(pku2406)给定一个字符串 L,已知这个字符串是由某个字符串 S 重复 R 次而得到的,求 R 的最大值。算法分析:做法比较简单,穷举字符串 S 的长度 k,然后判断是否满足。判断的时候,先看字符串 L 的长度能否被 k 整除,再看 suffix(1)和 suffix(k+1)的最...
阅读全文
posted @ 2015-04-28 11:37
AutSky_JadeK
阅读(219)
推荐(0)