1 条题解
-
0
#include <cstdio> #include <cstring> #include <algorithm> using namespace std; #define maxn 1010 #define maxk 1000010 #define lowbit(x) (x)&(-x) typedef long long ll; int c[maxn],kas,n,m,k; struct edge{int x,y;}e[maxk]; bool cmp(edge a,edge b){ return a.x<b.x||(a.x==b.x&&a.y<b.y); } void add(int i){ while(i<=m){ ++c[i]; i+=lowbit(i); } } int sum(int i){ int s=0; while(i>0){ s+=c[i]; i-=lowbit(i); } return s; } int main(){ int t;scanf("%d",&t); while(t--){ memset(c,0,sizeof(c)); scanf("%d%d%d",&n,&m,&k); for(int i=0;i<k;i++) scanf("%d%d",&e[i].x,&e[i].y); sort(e,e+k,cmp); ll ans=0; for(int i=0;i<k;i++){ ans+=i-sum(e[i].y); add(e[i].y); } printf("Test case %d: %lld\n",++kas,ans); } return 0; }
- 1
信息
- ID
- 2068
- 时间
- 2100ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者