标签:which 更新 ace strong 区间 mono amp title long
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 30080 Accepted Submission(s): 14859
1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #include<algorithm> 6 #include<queue> 7 #include<map> 8 #include<set> 9 #include<vector> 10 #include<cstdlib> 11 #include<string> 12 #define eps 0.000000001 13 typedef long long ll; 14 typedef unsigned long long LL; 15 using namespace std; 16 const int N=100000+100; 17 struct node{ 18 int l,r; 19 int val; 20 }tree[N*4]; 21 int flag[N*4]; 22 void pushup(int pos){ 23 tree[pos].val=tree[pos<<1].val+tree[pos<<1|1].val; 24 } 25 void build(int l,int r,int pos){ 26 tree[pos].l=l; 27 tree[pos].r=r; 28 tree[pos].val=1; 29 flag[pos]=0; 30 if(tree[pos].l==tree[pos].r)return; 31 int mid=(tree[pos].l+tree[pos].r)>>1; 32 build(l,mid,pos<<1); 33 build(mid+1,r,pos<<1|1); 34 //pushup(pos); 35 } 36 void update(int l,int r,int x,int pos){ 37 if(tree[pos].l==l&&tree[pos].r==r){ 38 tree[pos].val=x; 39 return; 40 } 41 if(tree[pos].val!=0){ 42 tree[pos<<1].val=tree[pos].val; 43 tree[pos<<1|1].val=tree[pos].val; 44 tree[pos].val=0; 45 } 46 int mid=(tree[pos].l+tree[pos].r)>>1; 47 if(mid>=r)update(l,r,x,pos<<1); 48 else if(mid<l)update(l,r,x,pos<<1|1); 49 else{ 50 update(l,mid,x,pos<<1); 51 update(mid+1,r,x,pos<<1|1); 52 } 53 } 54 int query(int l,int r,int pos){ 55 int mid=(tree[pos].l+tree[pos].r)>>1; 56 if(tree[pos].l==l&&tree[pos].r==r){ 57 if(tree[pos].val){ 58 return tree[pos].val*(tree[pos].r-tree[pos].l+1); 59 } 60 else{ 61 return query(l,mid,pos<<1)+query(mid+1,r,pos<<1|1); 62 } 63 } 64 } 65 int main(){ 66 int Case; 67 scanf("%d",&Case); 68 for(int k=1;k<=Case;k++){ 69 int m,n; 70 scanf("%d",&n); 71 build(1,n,1); 72 scanf("%d",&m); 73 int x,y,z; 74 while(m--){ 75 scanf("%d%d%d",&x,&y,&z); 76 update(x,y,z,1); 77 } 78 int ans=query(1,n,1); 79 printf("Case %d: The total value of the hook is %d.\n",k,ans); 80 81 } 82 }
标签:which 更新 ace strong 区间 mono amp title long
原文地址:http://www.cnblogs.com/Aa1039510121/p/6486563.html