423D
来源:互联网 发布:淘宝优惠券平台排名 编辑:程序博客网 时间:2024/06/07 14:29
题意:给出n个点,其中k个点只能有一条边相连,剩下的边至少有2条边相连,问构造出的树最远的两个点最近是多少
解答:度为1的点的数目越多,这个距离就越小。那么构造一个中心点,发散地连k个点。不够n的一层一层往最外面的点上面添加即可。
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){ int n,k; while(~scanf("%d%d",&n,&k)) { int tmp = n - k - 1; if(tmp > 0){ int ans = 1; if(tmp % k == 0) ans += (tmp / k); else ans += (tmp/k+1); if(tmp % k == 1) ans += (tmp/k+1); else ans *= 2; printf("%d\n",ans); } else printf("%d\n",2); for(int i = 2;i <= k+1;i++) printf("1 %d\n",i); for(int i = k + 2;i <= n;i++) printf("%d %d\n",i-k,i); } return 0;}
阅读全文
0 0
- 423D
- d
- d
- d
- d
- d
- D
- d
- d
- d
- d
- d
- %d
- d
- d
- d
- D
- d
- Timeline时间轴
- 104. Maximum Depth of Binary Tree
- 游戏开发中的人工智能(十):模糊逻辑
- 图像特征提取优秀的文章帖子
- 留校第一周
- 423D
- Ubuntu 下搭建 Nginx + PHP 运行
- Retrofit基本用法
- display:none和visibility:hidden的区别
- 多态、内部类、Object、异常
- 数据结构之顺序表(创建、使用、销毁)
- 论文阅读-《Densely Connected Convolutional Networks》
- G
- Linux基本操作系列(三):在CentOS 6.8系统上安装MySQL 5.7