1 条题解
-
0
这题数据有问题atcoder已过
#include<bits/stdc++.h> using namespace std; #define int long long #define lowbit(x) x&-x const int INF=0x3f3f3f3f3f3f3f3f; const int N=2e3+10; const int M=2e6+10; const int mod=1e9+7; int n,m; signed main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>m; if(m>(n-1)*(n-2)/2){ cout<<-1; return 0; } int cnt=(n-1)*(n-2)/2-m; cout<<cnt+n-1<<'\n'; for(int i=2;i<=n;i++){ cout<<1<<' '<<i<<'\n'; } for(int i=2;i<=n;i++){ for(int j=i+1;j<=n;j++){ if(cnt==0) return 0; cout<<i<<' '<<j<<'\n'; cnt--; } } return 0; } /* 我们可以往简单的方向想先做出一个树保证连通 1 2 1 3 1 4 1 5 2的是(n-1)*(n-2)/2 我们要缩成k个 连接两个 2 3或2 4等可以减掉1次 */
信息
- ID
- 1732
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 提高
- 标签
- 递交数
- 4
- 已通过
- 0
- 上传者