金歌 发表于 2024-9-10 04:07:26

set的用法

Cross Explosion - 洛谷
#include "bits/stdc++.h"
#define int long long
using namespace std;
const int N=1000000;
set <int> h, w;
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.insert(j),w.insert(i);
    cin>>q;
    while(q--)
    {
            int x,y;
            cin>>x>>y;
            if(h.find(y)!=h.end())
            {
                    h.erase(y);
                    w.erase(x);
                }
                else
                {
                auto i=h.lower_bound(y);
                vector<int>v;
                if(i!=h.end()) v.push_back(*i);
                if(i!=h.begin()) v.push_back(*(--i));
                for(auto j:v)       
                h.erase(j),w.erase(x);
                v.clear();
                i=w.lower_bound(x);
                if(i!=w.end())
                v.push_back(*i);
                if(i!=w.begin())
                v.push_back(*(--i));
                for(auto j:v)
                w.erase(j),h.erase(y);
                }
        }
        int ans=0;
        for(int i=1;i<=n;i++)
        ans+=h.size();
        cout<<ans;
    return 0;
}

//for(auto it=s.begin();it!=s.end();it++)
//cout<<*it;//


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: set的用法