摘要: 1470最简单的三维树状数组 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define lowbit(x) x&(-x) 8 int re[130][130][130],n; 9 int getsum(int x,int y,int z)10 {11 int s = 0,i,j,g;12 for(i = x; i >= 1 ; i -= lowbit(i))13 for(j = y ; j>= 1; j -= lowbit(j))14 ... 阅读全文
posted @ 2013-09-25 22:23 _雨 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 1471先学习了下tarjan算法的LCA 离线算法 它是先知道询问的结点对 在遍历的时候就已经算出来了看篇图解 讲的很清楚 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 100010 8 struct node 9 {10 int u,v,w,next;11 }ed[N<<2];12 int head[N],t,n,q,dis[N];13 int vis[N],ans[N],qhead[N<<2];14 int father[N],x[ 阅读全文
posted @ 2013-09-25 19:43 _雨 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 1494之前记得数据结构试卷上有这种题 就是判断某一出栈顺序 是不是满足以1.2。。。n为入栈顺序a1,a2,a3..an;对于任意相邻a[i],a[i+1] 如果a[i]>a[i+1]+1 那么它两之间的数肯定已经在前面出栈过了 不然中间的不出栈 a[i+1]不可能出来这一个条件就可以判断了 用数状数组求下和 就行了 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define N 100010 8 #define lowbit(x) x&(-x) 9 int f[ 阅读全文
posted @ 2013-09-25 10:54 _雨 阅读(448) 评论(0) 推荐(0) 编辑