题目链接: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; }