【链接】 我是链接,点我呀:)

【题意】

【题解】

首先,因为高度是h
所以肯定1下面有连续的h个点依次连成一条链。->用了h+1个点了
然后,考虑d这个约束。
会发现,形成d的这个路径,它一定是经过节点1比较好。
因为这条路径有两种可能->
1.经过了1节点
2.没有经过1节点,那么肯定是1的某个子树里面,但是如果它的子树里再来一条长度为d的路径,肯定没有比经过1来的好,因为如果在1的子树里面的话有增加树的高度h的风险。
为了降低这个超过h的风险,那么我们还是优先让这个路径经过节点1.
然后我们来构造这条长度为d的路径。因此还得在1节点的另外一个子树上创建d-h个节点。
同样接成一条链。
(但此时要判断这个d-h的高度会不会超过h,超过了的话那就无解了)
如果上面都没问题,那么高度h和d的要求就都满足。
但是别忘了还有一个节点个数的要求。
我们已经用了d+1个节点了。
还有n-d-1个节点没用。
这些点的话,可以这样,全都接在h号节点上(也即全都接在倒数第二层的节点上
(这里不是接成一条链了
这样就能做到既不会改变h,也不会改变d了。
但是有种情况要特判一下。
就是d = h =1的时候,这个时候只有两个节点,如果还有剩余的节点,那么就没办法再接了。因此也无解。

【代码】

#include <bits/stdc++.h>
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define LL long long
using namespace std; const int N = 1e4; int n,d,h; int main()
{
//freopen("D:\\rush.txt","r",stdin);
ios::sync_with_stdio(0),cin.tie(0);
cin >> n >> d >> h;
if (d-h>h){
cout<<-1<<endl;
return 0;
}
if (d==1){//1<=h<=d so h==d
if (n>=3){
cout<<-1<<endl;
return 0;
}
}
int cur = 1;
rep1(i,1,h){
cout<<cur<<' '<<cur+1<<endl;
cur++;
} int now = 1;
rep1(i,1,d-h){
cout<<now<<' '<<cur+1<<endl;
now = ++cur;
}
rep1(i,1,n-d-1)
cout<<h<<' '<<++cur<<endl;
return 0;
}

【Codeforces 639B】Bear and Forgotten Tree 3的更多相关文章

  1. codeforces 658C C. Bear and Forgotten Tree 3(tree+乱搞)

    题目链接: C. Bear and Forgotten Tree 3 time limit per test 2 seconds memory limit per test 256 megabytes ...

  2. 【codeforces 791D】 Bear and Tree Jumps

    [题目链接]:http://codeforces.com/contest/791/problem/D [题意] 你可以从树上的节点一次最多走k条边. (称为跳一次); 树为无权树; 然后问你任意两点之 ...

  3. 【30.36%】【codeforces 740D】Alyona and a tree

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  4. 【32.89%】【codeforces 574D】Bear and Blocks

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  5. 【codeforces 764C】Timofey and a tree

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  6. 【codeforces 514E】Darth Vader and Tree

    [题目链接]:http://codeforces.com/problemset/problem/514/E [题意] 无限节点的树; 每个节点都有n个儿子节点; 且每个节点与其第i个节点的距离都是ai ...

  7. 【codeforces 791C】Bear and Different Names

    [题目链接]:http://codeforces.com/contest/791/problem/C [题意] 给你n-k+1个限制 要求 a[i]..a[i]+k-1里面有相同的元素,或全都不同; ...

  8. 【codeforces 791B】Bear and Friendship Condition

    [题目链接]:http://codeforces.com/contest/791/problem/B [题意] 给你m对朋友关系; 如果x-y是朋友,y-z是朋友 要求x-z也是朋友. 问你所给的图是 ...

  9. 【codeforces 791A】Bear and Big Brother

    [题目链接]:http://codeforces.com/contest/791/problem/A [题意] 给你两个数字a和b; a每次乘3,b每次乘2 问你什么时候a第一次大于b [题解] 傻逼 ...

随机推荐

  1. ASP.NET MVC 认证模块报错:“System.Configuration.Provider.ProviderException: 未启用角色管理器功能“

    新建MVC4项目的时候 选 Internet 应用程序的话,出来的示例项目就自带了默认的登录认证等功能.如果选空或者基本,就没有. 如果没有,现在又想加进去,怎么办呢? 抄啊.将示例项目的代码原原本本 ...

  2. oc60--Category 分类 练习

    // main.m // Category练习 #import <Foundation/Foundation.h> #import "NSString+NJ.h" // ...

  3. Git Stash方法

    命令:git stash1.使用git stash 保存当前的工作现场, 那么就可以切换到其他分支进行工作,或者在当前分支上完成其他紧急的工作,比如修订一个bug测试提交. 2.如果一个使用了一个gi ...

  4. EMC 存储管理

    第一章EMC 产品介绍 1.1.         名词介绍 DAE——磁盘笼.用于装载磁盘的柜子. ◆Disk processor enclosure——含磁盘的控制器单元.存储系统的主要设备,内含存 ...

  5. bzoj1593 [Usaco2008 Feb]Hotel 旅馆(线段树)

    1593: [Usaco2008 Feb]Hotel 旅馆 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 758  Solved: 419[Submit ...

  6. centos7安装python3.7和ipython

    一.centos7为刚安装的 1)配置yum源和epel源 采用国内源 查看yum的配置文件 (里面的镜像网址)是否ping的通 全部更改成 国内的 yum .epel源 在图中位置 下载相应的 re ...

  7. Spring Boot (13) druid监控

    druid druid是和tomcat jdbc一样优秀的连接池,出自阿里巴巴.除了连接池,druid哈hi有一个很实用的监控功能. pom.xml 添加了以下依赖后,会自动用druid连接池替代默认 ...

  8. Vue掉坑记

    本文章汇总学习过程中掉入和不理解的坑,会持续更新,请保持关注 1.过滤器类 搜索过滤 2.修饰符 修饰符汇总 3.webpack webpack+vuecli打包路径 4.Vue后台管理框架 组件后台 ...

  9. MSCRM4 在过滤后的LOOKUP框中实现查找

    在MSCRM中让Lookup根据一定的条件实现过滤功能, 这个需求很常见, 在我接触的诸多项目中似乎都需要有这个功能. 但非常遗憾是, MSCRM 的SDK并没有提供实现这个功能的方法. 不过我们应该 ...

  10. Christopher G. Atkeson 简介

    有一个事实:双足机器人的稳定性问题单靠算法是搞不定的!!! 在2015 DARPA 机器人挑战赛中,许多参赛团队的机器人使用了Atlas,他们通过安装他们自己的软件并修改来让机器人保持平衡.来自WPI ...