摘要:
题意 求1到之间所有与n互质的数的四次幂之和。 分析 分解n^5-(n-1)^5..可以求出1^4+2^4+...+n^4的公式S(n)=1/30*(n^5+15*n^2*(n+1)^2-10*n*(n+1)*(2*n+1)+15*n*(n+1)-6*n) 先求出S(n),利用容斥原理去掉是n的质因子的倍数的数的四次幂之和。。。 1 #include 2 #include ...
阅读全文
posted @ 2012-10-11 23:15
dreamxr
阅读(99)
推荐(0)
编辑
摘要:
题意 求1到之间所有与n互质的数的四次幂之和。分析 分解n^5-(n-1)^5..可以求出1^4+2^4+...+n^4的公式S(n)=1/30*(n^5+15*n^2*(n+1)^2-10*n*(n+1)*(2*n+1)+15*n*(n+1)-6*n) 先求出S(n),利用容斥原理去掉是n的质因子的倍数的数的四次幂之和。。。 1 #include<iostream> 2 #include<algorithm> 3 #include<cstring> 4 #include<vector> 5 #define N 100100 6 #include
阅读全文
posted @ 2012-10-11 23:15
dreamxr
阅读(167)
推荐(0)
编辑
摘要:
分析 模拟一个伸展树的操作,最后中序遍历一下就可以。。 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<algorithm> 5 #define N 1000010 6 #pragma comment(linker, "/STACK:102400000,102400000") 7 using namespace std; 8 int ch[N][2],pre[N],s[N],sz[N],num[N]; 9 bool rev[N]; 1
阅读全文
posted @ 2012-10-09 11:00
dreamxr
阅读(177)
推荐(0)
编辑
摘要:
分析 模拟一个伸展树的操作,最后中序遍历一下就可以。。 1 #include 2 #include 3 #include 4 #include 5 #define N 1000010 6 #pragma comment(linker, "/STACK:102400000,102400000") 7 using namespace std; 8 int ch[N...
阅读全文
posted @ 2012-10-09 11:00
dreamxr
阅读(100)
推荐(0)
编辑
摘要:
题目描述 给定一个序列,询问某段区间内小于等于k的数的个数。 分析 划分树+二分,二分的同时统计满足题意的数的个数。。 1 #include 2 #include 3 #include 4 #define N 100100 5 #define lson l,m,n>1,lsame=m-l+1; 12 for(int i=l;isorted[m]) 23 ...
阅读全文
posted @ 2012-10-08 19:42
dreamxr
阅读(154)
推荐(0)
编辑
摘要:
题目描述 给定一个序列,询问某段区间内小于等于k的数的个数。分析 划分树+二分,二分的同时统计满足题意的数的个数。。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define N 100100 5 #define lson l,m,n<<1 6 #define rson m+1,r,n<<1|1 7 using namespace std; 8 int sorted[N],ans[N][20],num[N][20]; 9 void build(int
阅读全文
posted @ 2012-10-08 19:42
dreamxr
阅读(110)
推荐(0)
编辑
摘要:
分析 LCA,只不过多了图不连通的情形,用Tarjan离线处理,用visited[i]的值来表示i属于哪个集合.. 1 #include<cstdio> 2 #include<cstring> 3 #include<vector> 4 #include<algorithm> 5 #include<iostream> 6 #define N 10010 7 using namespace std; 8 int root[N],dis[N],n,m,k,ans[N*100]; 9 int visited[N],cnt;10 struct
阅读全文
posted @ 2012-09-15 00:06
dreamxr
阅读(111)
推荐(0)
编辑
摘要:
分析 LCA,只不过多了图不连通的情形,用Tarjan离线处理,用visited[i]的值来表示i属于哪个集合.. 1 #include 2 #include 3 #include 4 #include 5 #include 6 #define N 10010 7 using namespace std; 8 int root[N],dis[N],n,m,k,ans[N*10...
阅读全文
posted @ 2012-09-15 00:06
dreamxr
阅读(80)
推荐(0)
编辑
摘要:
分析 二维RMQ,maxn[i][j][a][b]表示以(i,j)为左上顶点,以(i+2^a-1,j+2^b-1)为右下顶点的矩形内的最大值,minn数组同理... 1 #include<iostream> 2 #include<algorithm> 3 #include<cstdio> 4 #define N 260 5 #define M 9 6 using namespace std; 7 int maxn[N][N][M][M],minn[N][N][M][M]; 8 int n,b,k; 9 void init(){10 for(int a=0;(
阅读全文
posted @ 2012-09-15 00:01
dreamxr
阅读(162)
推荐(0)
编辑
摘要:
分析 二维RMQ,maxn[i][j][a][b]表示以(i,j)为左上顶点,以(i+2^a-1,j+2^b-1)为右下顶点的矩形内的最大值,minn数组同理... 1 #include 2 #include 3 #include 4 #define N 260 5 #define M 9 6 using namespace std; 7 int maxn[N][N][M][M...
阅读全文
posted @ 2012-09-15 00:01
dreamxr
阅读(81)
推荐(0)
编辑