马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
[ABC370D] Cross Explosion - 洛谷
- #include "bits/stdc++.h"
- #define int long long
- using namespace std;
- const int N=1000000;
- set <int> h[N], w[N];
- signed main () {
- ios::sync_with_stdio (false);
- cin.tie (0); cout.tie (0);
- int n,m,q;
- cin >> n >> m;
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- h[i].insert(j),w[j].insert(i);
- cin>>q;
- while(q--)
- {
- int x,y;
- cin>>x>>y;
- if(h[x].find(y)!=h[x].end())
- {
- h[x].erase(y);
- w[y].erase(x);
- }
- else
- {
- auto i=h[x].lower_bound(y);
- vector<int>v;
- if(i!=h[x].end()) v.push_back(*i);
- if(i!=h[x].begin()) v.push_back(*(--i));
- for(auto j:v)
- h[x].erase(j),w[j].erase(x);
- v.clear();
- i=w[y].lower_bound(x);
- if(i!=w[y].end())
- v.push_back(*i);
- if(i!=w[y].begin())
- v.push_back(*(--i));
- for(auto j:v)
- w[y].erase(j),h[j].erase(y);
- }
- }
- int ans=0;
- for(int i=1;i<=n;i++)
- ans+=h[i].size();
- cout<<ans;
- return 0;
- }
- //for(auto it=s.begin();it!=s.end();it++)
- //cout<<*it;//
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |