Codeforces_953C_Mahmoud and Ehab and the wrong algorithm(构造)

版权声明: https://blog.csdn.net/yyy_3y/article/details/79965431

传送门

思路:分情况构造,一定 正确的树是一条直线。不正确的话是当n>=6的时候,只需要在1上挂2,3,4,其他挂在2上就行。画画图就很容易出来啦。

#include<bits/stdc++.h>
#define debug(a) cout << #a << " " << a << endl
#define LL long long
#define ull unsigned long long
#define PI acos(-1.0)
#define eps 1e-6
const int N=1e5+7;
using namespace std;
int main ()
{
    //yyy_3y
    //freopen("1.in","r",stdin);
    int n; scanf("%d",&n);
    if(n<6){
        printf("-1\n");

    }else {
        for(int i=2;i<=4;i++) printf("1 %d\n",i);
        for(int i=5;i<=n;i++) printf("2 %d\n",i);
    }
    for(int i=1;i<n;i++){
        printf("%d %d\n",i,i+1);
    }
    return 0;
}
阅读更多

没有更多推荐了,返回首页