Stars HDU 1541
生活随笔
收集整理的這篇文章主要介紹了
Stars HDU 1541
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
題意:每個星星有一個等級,該等級為它左下角的星星的個數。星星的坐標按Y坐標為第一關鍵字X坐標為第二關鍵字的遞增的順序給出。最后輸出0~n-1等級的星星一共有多少個。
?
題解:樹狀數組。
?
AC代碼:
View Code 1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 using namespace std; 5 const int maxn=32005; 6 int a[maxn],sum[maxn]; 7 void Updata(int p,int c){ 8 while(p<=32005){ 9 a[p]+=c; 10 p+=p&(-p); 11 } 12 } 13 int SuM(int x){ 14 int total=0; 15 while(x>0){ 16 total+=a[x]; 17 x-=x&(-x); 18 } 19 return total; 20 } 21 int main() 22 { 23 int n,x,y,i; 24 while(scanf("%d",&n)!=EOF){ 25 memset(a,0,sizeof(a)); 26 memset(sum,0,sizeof(sum)); 27 for(i=0;i<n;i++){ 28 scanf("%d %d",&x,&y); 29 x++; 30 sum[SuM(x)]++; 31 Updata(x,1); 32 } 33 for(i=0;i<n;i++) 34 printf("%d\n",sum[i]); 35 } 36 return 0; 37 }?
?
?
轉載于:https://www.cnblogs.com/acmer-roney/archive/2012/10/13/2722755.html
總結
以上是生活随笔為你收集整理的Stars HDU 1541的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bash shell 循环读入每一行(转
- 下一篇: Direct3D 开发之旅 3D 游戏