题目链接
题目思路
给你一个节点数(n(3leq nleq 100))
要你构造一个简单联通图,使得每个节点的周围的节点和相同
题目思路
这个题目看了题解之后,就啪的一下很快啊,很快就a了
但是不看题解也想不到。。。
其实就是把(n)分为奇偶考虑
若(n)为偶数,则(i)节点不和(n-i+1)节点相连
若(n)为奇数,则(i)节点不和(n-i)节点相连
除此之外其他点全部两两相连
这样的结论是显然的
代码
#include<bits/stdc++.h>
using namespace std;
#define fi first
#define se second
typedef long long ll;
typedef pair<double,int> pdi;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=1e2+5,mod=1e7;
int n;
bool vis[maxn][maxn];
int main(){
scanf("%d",&n);
if(n%2==0){
for(int i=1;i<=n/2;i++){
vis[i][n-i+1]=1;
}
}else{
for(int i=1;i<=n/2;i++){
vis[i][n-i]=1;
}
}
printf("%d
",(n-1)*n/2-n/2);
for(int i=1;i<n;i++){
for(int j=i+1;j<=n;j++){
if(!vis[i][j]){
printf("%d %d
",i,j);
}
}
}
return 0;
}