G

题目链接:http://codeforces.com/gym/102190/attachments

题解:我们先将前5个点分别涂上红色或者绿色,使得这两棵树在5个点中都是连通,并不存在自环(建边方式不唯一,主要看自己怎么想的,只要满足题意即可)。那么从第6个点开始:分别找一个固定的点与该点连边即可。

自己看别人做的方法,才自己做出来的,也是思考了一下,下面来张自己手动模拟的图,自己模拟一遍就会了呀

#include<bits/stdc++.h>
using namespace std;
int print(int a,int b,int c,int d)
{
    cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
    //fflush(stdout);
    int x;
    cin>>x;
    return x;
}
void Init()
{
    int k1=print(1,3,1,4);
    int k2=print(3,2,3,5);
    if(k1==k2){
        int k3=print(2,4,2,5);
        if(k3==k1)
            print(5,1,5,4);
        else
            print(4,5,4,3);
    }
    else{
        int k3=print(2,5,4,5);
        if(k3==k1)
            print(4,3,4,2);
        else
            print(4,2,1,2);
    }
}
int main()
{
    int t;
    cin>>t;
    while(t--){
        int n;
        cin>>n;
        Init();
        for(int i=6;i<=n;i++)
            print(1,i,2,i);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/cherish-lin/p/10801897.html