HDU 4217 树状数组+二分查找
来源:互联网 发布:ug数控编程手机壳 编辑:程序博客网 时间:2024/05/16 15:25
比赛中做出这题来让我开心了好久啊~哈哈~温习了一下树状数组。
开始惊奇和雄爷爷和我说树状数组没有这个性质,我不信。后来码畜来之后,才发现,确实树状数组确实没有这么个性质。
于是开始用vector做= =TLE.... 还好想出了二分这个好办法... 1234ms AC了... 嘿嘿...
其实我还是挺膜拜那些4500++的code...
#include<iostream>#include<string>using namespace std;int N,K;int c[399999];int lowbit( int x ){ return x&(-x);}void modify( int num,int v ){ while( num<=N ){ c[num]+=v; num+=lowbit(num); }}int getnum( int n ){ int x=n; int rec=0; while(x){ rec+=c[x]; x-=lowbit(x); } return rec;}int del( int n ){ int l=1,r=N; int mid; while( (mid=(r+l)/2)&&l<r ) { if( getnum(mid)>=n ) r=mid; else l=mid+1; } modify(mid,-1);return mid;}int main(){ int T; scanf( "%d",&T ); int ca=1; while( T-- ) { __int64 ans=0; memset( c,0,sizeof(c) ); scanf( "%d %d",&N,&K ); for( int i=1;i<=N;i++ ){ modify( i,1 ); } for( int i=1;i<=K;i++ ) { int num; scanf( "%d",&num ); ans+=del(num); } printf( "Case %d: %I64d\n",ca++,ans ); } return 0;}
- HDU 4217 树状数组+二分查找
- hdu(4339)树状数组+二分查找
- [树状数组]hdu 2852 KiKi's K-Number# +二分查找。
- HDU KiKi's K-Number (树状数组+二分查找)
- Hdu 4217 Data Structure?【二分+树状数组】
- HDU 4311 树状数组+二分
- HDU 2852 树状数组+二分
- HDU 5493(树状数组+二分)
- hdu 5592 树状数组+二分
- pat-1057 Stack 树状数组+二分查找
- HDU 2852——KiKi's K-Number(树状数组+二分查找, 第k大)
- hdu 3648 Median Filter 树状数组+二分查找+优化
- HDU P4339(树状数组+二分查询)
- HDU 4339 Query(树状数组+二分)
- hdu 4302 简单树状数组二分
- hdu 2852(树状数组+二分)
- HDU ACM 5249 KPI->树状数组+二分
- HDU 5493 Queue(二分+树状数组)
- linux创建用户命令
- IoGetDeviceObjectPointer
- 书写strcpy的源码
- sizeof详解
- C 输入输出 读取 回显 缓冲
- HDU 4217 树状数组+二分查找
- Oracle 重置排序 SEQUENCE
- 自己遇到的BUG(一)
- 正则表达式相关
- 怎样在DELPHI窗体上添加链接
- 关于lcd配置寄存器顺序。
- 一个很有深度的C++内存问题---GDB调试(一)
- hdu 1021 Fibonacci Again 找规律
- CS0016: Could not write to output file 'c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP