日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hdu 3577Fast Arrangement

發(fā)布時間:2024/1/17 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hdu 3577Fast Arrangement 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
View Code 1 #include<stdio.h> 2 #define Maxn 1000010 3 int a[Maxn],b[Maxn]; 4 struct Node 5 { 6 int l,r; 7 int sum;//子樹最大覆蓋 8 int ant;//本身被覆蓋 9 }node[4*Maxn]; 10 int max(int a,int b) 11 { 12 13 14 15 return a=a>b?a:b; 16 17 } 18 void create_tree(int ll,int rr,int u) 19 { 20 21 node[u].l=ll; 22 node[u].r=rr; 23 node[u].sum=0; 24 node[u].ant=0; 25 if(ll==rr) return; 26 int mid=(ll+rr)/2; 27 create_tree(ll,mid,2*u); 28 create_tree(mid+1,rr,u*2+1); 29 } 30 31 void update(int s,int e,int u) 32 { 33 34 if(s<=node[u].l&&e>=node[u].r) 35 { 36 node[u].sum++; 37 node[u].ant++; 38 return; 39 40 } 41 int mid=(node[u].l+node[u].r)/2; 42 if(e<=mid) 43 { 44 update(s,e,u*2); 45 node[u].sum=max(node[u*2].sum,node[u*2+1].sum)+node[u].ant; 46 47 48 } 49 else if(s>mid) 50 { 51 update(s,e,u*2+1); 52 node[u].sum=max(node[u*2].sum,node[u*2+1].sum)+node[u].ant; 53 } 54 else 55 { 56 update(s,e,u*2); 57 update(s,e,u*2+1); 58 node[u].sum=max(node[u*2].sum,node[u*2+1].sum)+node[u].ant; 59 } 60 61 62 } 63 64 int query(int s,int e,int u) 65 { 66 67 if(s<=node[u].l&&e>=node[u].r) 68 return node[u].sum; 69 70 int mid=(node[u].l+node[u].r)/2; 71 if(e<=mid) 72 { 73 return node[u].ant+query(s,e,u*2); 74 75 } 76 else if(s>mid) 77 { 78 return node[u].ant+query(s,e,u*2+1); 79 } 80 else return node[u].ant+max(query(s,e,u*2),query(s,e,u*2+1)); 81 } 82 83 int main() 84 { 85 int t; 86 int k,n; 87 88 scanf("%d",&t); 89 for(int i=1;i<=t;i++) 90 { 91 92 93 scanf("%d%d",&k,&n); 94 create_tree(1,Maxn,1); 95 for(int j=1;j<=n;j++) 96 { 97 scanf("%d%d",&a[j],&b[j]); 98 b[j]--; 99 } 100 printf("Case %d:\n",i); 101 for(int j=1;j<=n;j++) 102 { 103 if(query(a[j],b[j],1)<k) 104 { 105 printf("%d ",j); 106 update(a[j],b[j],1); 107 } 108 109 } 110 printf("\n\n"); 111 112 } 113 }

?

轉載于:https://www.cnblogs.com/1114250779boke/archive/2012/08/29/2662588.html

總結

以上是生活随笔為你收集整理的hdu 3577Fast Arrangement的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。