2012年11月7日

摘要: 题目大意:就是求一个数n的最大素数因子。思路:类似于筛素数,每次记录当前最大的素数因子,并同时记录该素数的序号。View Code #include <stdio.h>#include <string.h>int prime[1000000];int pos[1000000];int main(){ int i,j,k=1,n; prime[1]=1; pos[1]=0; memset(prime,0,sizeof(prime)); for(i=2;i<1000000;i++) if(prime[i]==0){ prime[i]=i; ... 阅读全文
posted @ 2012-11-07 21:40 kim888168 阅读(130) 评论(0) 推荐(0) 编辑
 
摘要: 题目大意:n个排成一列石头,其中有黑有白(1表示黑,0表示白),有两种操作:(1)x=1,对相应区间的石头颜色取反。(2)x=0,求相应区间内的最长连续的黑石石头的数目。View Code 1 #include <stdio.h> 2 #define lson l,m,rt<<1 3 #define rson m+1,r,rt<<1|1 4 #define maxn 100000 5 struct node 6 { 7 int llen1,llen0,rlen1,rlen0,maxlen1,maxlen0,col; 8 }setree[maxn<< 阅读全文
posted @ 2012-11-07 20:23 kim888168 阅读(132) 评论(0) 推荐(0) 编辑
 
摘要: 题目的大概意思是有1,2,3,,,N的N个数,每次去掉第ki小的数,经过k次操作,求去掉的数的总和。思路:线段树,由于每个元素所代表的区间的数都是有序的,每个元素只需记录相应区间的数的个数即可。注用long long.View Code #include <stdio.h>#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define maxn 262144struct node{ __int64 len,num;}setree[maxn<<2];__int64 ans;void build(__i 阅读全文
posted @ 2012-11-07 11:59 kim888168 阅读(109) 评论(0) 推荐(0) 编辑