上一页 1 ··· 3 4 5 6 7

2012年11月7日

摘要: 题目大意: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) 编辑

2012年11月5日

摘要: 题目大意:还是一个旅馆里有N个房间,开始均为空。有两种操作:(1)查询是否有d个连续空房间,有则输出序号最小的房间号,即最靠左的房间号。否则输出0(2)清空从a房间开始的连续b个房间。代码如下:View Code 1 #include <stdio.h> 2 3 #define lson l,m,rt<<1 4 5 #define rson m+1,r,rt<<1|1 6 7 #define maxn 50000 8 9 struct node 10 11 { 12 13 int llen,rlen,maxlen,c; 14 15 }setree[ma... 阅读全文
posted @ 2012-11-05 14:36 kim888168 阅读(196) 评论(0) 推荐(0) 编辑
 
摘要: View Code #include <stdio.h>#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1#define maxn 16000struct node{ int llen,rlen,maxlen,c;}setree[maxn<<2];int max(int a,int b){ return a>b?a:b;}int min(int a,int b){ return a<b?a:b;}void build(int l,int r,int rt){ setree[rt].llen 阅读全文
posted @ 2012-11-05 14:18 kim888168 阅读(104) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7