2 solutions
-
2
注意到每个格子只会被最后一次涂色覆盖,倒序处理即可。
set的功能恰好支持查询用插入。map已经输的体无完肤了!#include<bits/stdc++.h> #define int long long #define I using #define love namespace #define copying std; I love copying; int h,w,C,q; struct QUERY{ int t,n,c; }qy[300005]; int ans[300005]; set<int>heng,shu; signed main(){ scanf("%lld%lld%lld%lld",&h,&w,&C,&q); for(int i=1;i<=q;i++)scanf("%lld%lld%lld",&qy[i].t,&qy[i].n,&qy[i].c); for(int i=q;i>=1;i--){ int t=qy[i].t; int n=qy[i].n; int c=qy[i].c; if(t==1){ if(heng.find(n)==heng.end()){ heng.insert(n); ans[c]+=w-shu.size(); } } if(t==2){ if(shu.find(n)==shu.end()){ shu.insert(n); ans[c]+=h-heng.size(); } } } for(int i=1;i<=C;i++)printf("%lld ",ans[i]); }
Information
- ID
- 609
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 7
- Tags
- (None)
- # Submissions
- 33
- Accepted
- 9
- Uploaded By