关于编译错误
  • 板块学术版
  • 楼主吴思诚
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/6/29 20:04
  • 上次更新2023/11/3 12:07:55
查看原帖
关于编译错误
371848
吴思诚楼主2023/6/29 20:04
#include<cstdio>
#include<vector>
#include<unordered_set>
using namespace std;
#define Ls(i,l,r) for(int i=l;i<r;++i)
#define Rs(i,l,r) for(int i=l;i>r;--i)
#define Le(i,l,r) for(int i=l;i<=r;++i)
#define Re(i,l,r) for(int i=l;i>=r;--i)
#define L(i,l) for(int i=0;i<l;++i)
#define E(i,l) for(int i=1;i<=l;++i)
#define W(t) while(t--)
int n,d,nd;
vector<pair<int,int>>ans;
unordered_set<pair<int,int> >st;
int main(){
    #ifndef ONLINE_JUDGE
    freopen("1.in","r",stdin);
    // freopen("1.out","w",stdout);
    // ios::sync_with_stdio(0);
    // cin.tie(0);
    // cout.tie(0);
    #endif
    // Insert Code Here
    scanf("%d%d",&n,&d);
    nd=n*d;
    if(n*(n-1ll)/2<n*d)return puts("No"),0;
    E(i, n){
        int cnt=0;
        E(j, n){
            if(cnt==d+1)break;
            if(j!=i&&st.find({i,j})!=st.end())
                ans.push_back({i,j}),
                st.insert({i,j}),
                --nd,++cnt,
                st.insert({j,i});
        }
    }
    for(int i=1;i<=n&&nd;++i){
        for(int j=1;j<=n&&nd;++j){
            if(j!=i&&st.find({i,j})!=st.end())
                ans.push_back({i,j}),
                st.insert({i,j}),
                --nd,
                st.insert({j,i});
        }
    }
    if(ans.size()>nd)return puts("No"),0;
    puts("Yes");
    for(auto v:ans)printf("%d %d\n",v.first,v.second);
    return 0;
}

这段代码 unordered_set 那里为什么会 CE

2023/6/29 20:04
加载中...