09 2013 档案
摘要:题意:点数n(n #include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson og[N];int ans[N],tf[N],lf[N],vis[N];void init(){ for(int i=0; i=(q[k].b*bit+1)&&v=q[k].l&&v=l&&v<=r) ans-=unionone(lf,i,v); } } return an...
阅读全文
摘要:题意:一串项链,每颗珠子上有一个数字,任选连续的一段,按顺时针顺序将它们的数字拼起来,若新的数字是k的倍数,则这个数字是一个wonderful value 。求有多少个wonderful value 。题解:由于K非常小,我们可以用dp[j][i]表示以第j个数结尾的所有数字中模k为i的方案为多少,那么计算dp[j+1][i]的时候乘上偏移值并加上j+1个珠子的值就行了。复杂度为nk。注意如果读入数就去模的话,要记下原来的数的长度,比如9 和123拼起来9要乘1000,如果123先取模的话可能就乘100或者10了。就是这里卡了两个多少时……//#pragma comment(linker, &
阅读全文
摘要:题目大意:给你一颗n个点的树,每个点有一个权值。然后有m个询问,问从x到y的简单路径中,权值 xor z最大是多少。首先异或最大就是在字典树上找它的按位取反,首先满足高位。思路:可持久化的0-1字典树,每个点在父节点的历史版本上新建一棵字典树,字典树上的每个结点给一个值记录从这个结点到树的根节点,有多少个权值会经过这个字典树上的结点。询问的时候在字典树上奏即可。由于a[i]#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#d
阅读全文
摘要:这道题题意是,给定一棵树,每条边都有一定的权值,q次询问,每次询问某两点间的距离。这样就可以用LCA来解,首先找到u, v 两点的lca,然后计算一下距离值就可以了。这里的计算方法是,记下根结点到任意一点的距离dis[],这样ans = dis[u] + dis[v] - 2 * dis[lca(v, v)]了,这个表达式还是比较容易理解的。。离线复杂度:O(n+m)在线复杂度:O(nlgn+mlgn)显然离线的算法有优势!!!!!!!!(在线算法的思想很好)法一(离线法):LCA Tarjan算法--模版:http://www.cnblogs.com/sbaof/articles/33389
阅读全文
摘要:题意:给n*m的地图,在地图的点上走,(n+1)*(m+1)个点,两种操作:往下走D和往右走R。现在要从左上角走到右下角,给定两个操作串,问包含这两个串的走法总共有多少种。做法:用这两个串构建自动机,然后只要在自动机上走n+m+1步就好了。就像一个递推,dp[x][y][i][cur]表示在i状态到达x,y坐标时走过的串的状态为cur时的总方案数//#pragma comment(linker, "/STACK:102400000")#include#include#include#include#include#include#include#include#includ
阅读全文
摘要:题意:一个数列,给出这个数列中的某些位置的数,给出所有相邻的三个数字的和,数列头和尾处给出相邻两个数字的和。有若干次询问,每次问某一位置的数字的最大值。分析:设数列为a1~an。首先通过相邻三个数字的和我们可以求出a3,a6,a9……是多少。a3=sum(a1,a2,a3)-sum(a1,a2)。a6=sum(a4,a5,a6)-sum(a3,a4,a5)。后面依次类推。推到了数列的最右面,如果恰好知道了an或者a(n-1)中的一个,那么可以通过sum(an,a(n-1))减去它来求得另一个。这个题还有个性质就是,只要知道数列中连续的两位就可以通过不断向两侧延伸的方法得到整个数列。因为任意相邻
阅读全文
摘要:题意:n个点,m条边的无向图,每条边abc,点a到点b的权值是c。p(0#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson o<<1,l,mid#define rson o<<1|1,mid+1,r#define lo o<<1#define ro o<<1|1#define ULL unsigned long long#define LL long lo
阅读全文
摘要:题目大意:判断一堆人能否分成两组,组内人都互相认识。思路:不认识的人一定不在一起!#include#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson og[N]; while(scanf("%d",&n)==1) { for(int i=0;i<=n;i++) { g[i].clear();//WA f[...
阅读全文
摘要:单调栈可以维护一个长度递增的序列,当新加入的元素不递增时,会把前面的元素截断,使其保持递增由于截断之后大量的元素长度相同,所以没有必要把所有所有元素压入栈,只需将这些元素压缩成一个(用矩阵块和表示!),记录个数,放入栈既可。//#pragma comment(linker, "/STACK:102400000")#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson o=
阅读全文
摘要:#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson og[N];double d[N];int ans[N];void init(){ for(int i=2; i=p[i]; j--) { double tp=log2(p[i]); for(int k=p[i],num=1; k<=j; k*=p[i],num++) ...
阅读全文
摘要:题意,有一个n多边形,且是正多边形,从中任取3点构成一个三角形。告诉你这3个点的坐标,求满足条件的最小的n。基本思路:在n多边形外画一个圆找规律。暴力,从i(3#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson o0?1:-1;}struct Point{ double x,y; int read() { return scanf("%lf%lf",&x,&y); .
阅读全文
摘要:题意说是一个数据库,有n(n=xi,qy>=yi)2 (qx>=xi,qy=yi)4 (qxxi, 当qx==xi时 qy>=yi但是在之前的点必然会出现 qx>xi&&qx=xi,qy>=yi) 的点。树状数组搞定:#include#include#include#include#include#include#include#include#include#include#define LL long long#define inf 0x7ffffffffffffffll#define N 200009using namespace std;L
阅读全文
摘要:题目大意:n个石头围成一圈,每个有权值,现在两只兔子从任意两个石头开始,一个顺时针,一个逆时针跳,可以跳任意远,但是不能超过一圈,要两只兔子所在的石头对应的权值任意时刻都相同,问兔子最多跳多少步。//#pragma comment(linker, "/STACK:16777216")#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson o<<1,l,mid#
阅读全文
摘要:最短路问题,主要考的是构图的思想;思路:将每一层拆分成两个点,例如,第一层分成n+1即(n+2*i-1)和n+2(n+2*i);总共3*n个点;也就是第i层分成n+2*i-1和n+2*i;规定n+2*i-1始终作为入边,n+2*i始终作为出边;如果某个点属于第i层,就连边i->n+2*i-1,n+2*i->i,权值为0;然后根据题意,相邻的层次连边,权值为C,n+2*i-1->n+2*(i+1)和n+2*(i+1)-1->n+2*i;然后跟着输入的边构图;#include#include#include#include#include#include#include#i
阅读全文

浙公网安备 33010602011771号