Omkar and Heavenly Tree

题目传送门

思路

首先看到翻译上面的一段话:\(1 \le m < n\),而这就是解题的关键。因为 \(m < n\),所以不论怎样都至少会有一个点不在限制里,于是可以以这个点为根节点构造菊花图。不难证得,任意两点的路径最多都只会包含这两个点和根节点,又因根节点不在限制里,所以可以满足所有限制。

代码

#include<bits/stdc++.h>
using namespace std;
int T,n,m;
bool f[100005];
int main(){
	cin>>T;
	while(T--){
		memset(f,0,sizeof(f));
		cin>>n>>m;
		for(int a,b,c,i=1;i<=m;i++)
			cin>>a>>b>>c,f[b]=true;
		for(int i=1;i<=n;i++)
			if(!f[i]){
				for(int j=1;j<=n;j++)
					if(j!=i)
						cout<<i<<" "<<j<<endl;
				break;
			}
	}
	return 0;
}
posted @ 2024-08-21 16:31  WuMin4  阅读(26)  评论(0)    收藏  举报