本文共 359 字,大约阅读时间需要 1 分钟。
题意:要你构造出一棵树,树刚好只有k个度为1的点,同时要求树的直径最小。 思路:每k个点一层层平均分就是最优的。#includeusing namespace std;const int maxn =2e5+1;int main(){ int n,k; scanf("%d%d",&n,&k); if((n-1)%k==0) printf("%d\n",2*((n-1)/k)); else if((n-1)%k==1) printf("%d\n",2*((n-1)/k)+1); else printf("%d\n",2*((n-1)/k)+2); for(int i=2;i<=k+1;++i) printf("%d %d\n",1,i); int now=k+1; while(now
转载地址:http://xfign.baihongyu.com/