标签:des style blog http color java os io
Time Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10594 Accepted Submission(s): 4686
代码: 代码写的比较脆,花掉的时间是:3795ms 呵~~呵~~ ,呵了个呵的!
1 /*基础的线段树*/ 2 #include<cstdio> 3 #include<cstring> 4 5 const int maxn= 200050; 6 int aa[maxn]; 7 8 struct node 9 { 10 int lef,rig,mx; 11 int mid(){ 12 return lef+((rig-lef)>>1); 13 } 14 }; 15 16 int h,w,n; 17 node reg[maxn<<2]; 18 inline int max(int a,int b) 19 { 20 return a>b?a:b; 21 } 22 23 void Build(int lef,int rig,int pos) 24 { 25 reg[pos]=(node){lef,rig,w}; 26 if(lef==rig) return ; 27 int mid=reg[pos].mid(); 28 Build(lef,mid,pos<<1); 29 Build(mid+1,rig,pos<<1|1); 30 } 31 32 void Work(int val,int pos) 33 { 34 if(reg[pos].mx>=val) 35 { 36 if(reg[pos].rig==reg[pos].lef) 37 { 38 reg[pos].mx-=val; 39 printf("%d\n",reg[pos].rig); 40 return ; 41 } 42 if(val<=reg[pos<<1].mx) 43 Work(val,pos<<1); 44 else 45 Work(val,pos<<1|1); 46 reg[pos].mx=max(reg[pos<<1].mx,reg[pos<<1|1].mx); 47 } 48 else if(pos==1) printf("-1\n"); 49 return ; 50 } 51 52 int main() 53 { 54 int cn; 55 while(scanf("%d%d%d",&h,&w,&n)!=EOF) 56 { 57 if(h>n) h=n; 58 Build(1,h,1); 59 while(n--) 60 { 61 scanf("%d",&cn); 62 Work(cn,1); 63 } 64 } 65 return 0; 66 }
HDU-------(2795)Billboard(线段树区间更新),布布扣,bubuko.com
HDU-------(2795)Billboard(线段树区间更新)
标签:des style blog http color java os io
原文地址:http://www.cnblogs.com/gongxijun/p/3895885.html