CodeForces 828D High Road
来源:互联网 发布:怎么报送发票数据 编辑:程序博客网 时间:2024/05/22 17:46
题目链接:https://vjudge.net/problem/CodeForces-828D
题意:
有n个节点,这n个节点中有k个叶子节点,构造成一棵树,请给出一个最优方案,使得树的直径最小。
思路:
在保证是一棵树且使得树的直径最小,可以想象,像树的年轮一样一层一层往外扩展,才能满足题目条件。最中间放一个节点,然后每一圈的长度为k(保证有k个叶子),一圈一圈往外放。
当(n-1)%k==0时,最远距离为2*(n-1)/k;
当(n-1)%k==1时,最远距离为2*((n-1)/k)+1;
当(n-1)%k>=2时,最远距离为2*((n-1)/k)+2。
总结:
比赛时像在梦游。
代码:
#include <iostream>#include <algorithm>#include <cstring>#include <cstdio>#include <queue>#include <vector>using namespace std;int main(){ int n, k; cin>>n>>k; int tmp = 2*((n-1)/k); int yu = (n-1)%k; if(yu==1) ++tmp; if(yu>=2) tmp += 2; cout<<tmp<<endl; int idx = 1; for(int i=1; i<=k; ++i){ cout<<++idx<<" "<<1<<endl; } while(idx<n){ for(int i=1; i<=k&&idx<n; ++i){ ++idx; cout<<idx<<" "<<idx-k<<endl; } } return 0;}
阅读全文
0 0
- CodeForces 828D High Road
- Codeforces 828 D High Load
- Codeforces 828 D. High Load 思维+构造
- Codeforces 828D High Load (构造)
- CodeForces 34D Road Map
- Codeforces Gym100425 D. Toll Road
- Codeforces 875D High Cry
- codeforces 34D - Road Map DFS
- 【codeforces】543D. Road Improvement【树形DP】
- Codeforces 543D Road Improvement 树形dp
- Road Improvement - CodeForces 543 D 树形dp
- codeforces 543d Road Improvement 树形dp
- Codeforces 543 D Road Improvement 树形dp
- codeforces-702D-Road to Post Office
- Codeforces 702D - Road to Post Office
- Codeforces Round #423 D. High Load
- Codeforces Round #423 D. High Load
- Codeforces 875D High Cry rmq+分治
- 找规律 calc
- City -hdoj 4496-并查集删边
- Java面试03|并发及锁
- 从头搭建 influxdb
- C++知识总结(1)
- CodeForces 828D High Road
- CSS3伪元素表单控件默认样式重置与自定义大全
- C++设计模式之工厂方法模式
- padding学习
- 持续集成概念是什么?好处有哪些?
- Java面试04|Spring框架
- Android之在一个类里面注册Handler发送消息在另外一个类里面接收消息
- 为什么精英都是清单控(笔记)——清单都一样吗?
- 数组、字符串与指针