codeforces959C
题意:输入n(代表有n个节点),找出满足题意给出的找出最小节点数(对于给出的所有边,在这个最小节点数集合里总可以找到一个点在此边上)。
给出算法:
1:根节点节点数为1;
2:计算所有深度为偶数的节点总数为evencnt;
3:计算所有深度为奇数的节点总数为oddcnt;
4:最小节点数=min(evencnt,oddcnt);
根据题目给出的提示我们可以推出算法成立的模板和不成立的模板,具体请看代码
代码:
#include<stdio.h>
//找出只要两个节点的情况,然后在这基础上加上和1的连线,保持偶数深度数为3个,奇数节点数大于等于3的情况(算法出错)
// 1
// / \ \ ....
// 2 5 6 .....
// / \
// 3 4
//
// 只有一个节点的情况,偶数深度数等于1,奇数深度数大于等于1(算法成立)
// 1
// / / / \ \ \.......
// 2 3 4 5 6 7.......
int main()
{
int n;
scanf("%d",&n);//根节点也是一个偶数的深度
int i,j;
if(n==2)
{
printf("-1\n");
printf("1 2\n");
}
else
{
if(n==3||n==4||n==5)//当n=3,4,5时算法始终成立
printf("-1\n");
else
printf("1 2\n2 3\n2 4\n1 5\n");//先建立模板式
for(i=6;i<=n;i++)//增加于1的连线(相当于增加奇数深度数)
printf("1 %d\n",i);
for(i=2;i<=n;i++)//按照算法成立建立模板
printf("1 %d\n",i);
}
return 0;
}
codeforces959C的更多相关文章
随机推荐
- Android的组件化和模块化
Android随着业务的增多,而且后续新的需求的增加,代码的修改会变得非常频繁 然后最近在看组件化和模块化 公司的业务没有那么大,所以这种方式我并没有采取 但是还是需要了解下他的使用机制 还有优缺点之 ...
- android -------- 打开本地浏览器或指定浏览器加载,打电话,打开第三方app
开发中常常有打开本地浏览器加载url或者指定浏览器加载, 还有打开第三方app, 如 打开高德地图 百度地图等 在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器. 如果手机 ...
- IntelliJ IDEA 安装 Scala 插件
本页面中对在 IntelliJ 中安装 Scala 插件的步骤和方法进行了描述. 需要在 IntelliJ 安装 Scala 插件,你首先需要在你的计算机中安装 IntelliJ .IntelliJ ...
- 启动mysql5.7异常The server quit without updating PID file [FAILED]sql/data/***.pi根本解决方案
异常表现 mysql5.7启动时报错 Starting MySQL...The server quit without updating PID file [FAILED]sql/data/insta ...
- pytorch构建自己设计的层
下面是如何自己构建一个层,分为包含自动反向求导和手动反向求导两种方式,后面会分别构建网络,对比一下结果对不对. -------------------------------------------- ...
- Centos7 下coreseek的安装
Coreseek介绍: Sphinx默认不支持中文索引及检索,基于Sphinx开发了Coreseek 全文检索服务器,Coreseek应该是现在用的最多的Sphinx中文全文检索,它提供了为Sphin ...
- ImportError: sys.meta_path is None, Python is likely shutting down
python执行过错中,报错:ImportError: sys.meta_path is None, Python is likely shutting down 解决方法:在C:\Users\Adm ...
- Coprime Arrays CodeForces - 915G (数论水题)
反演一下可以得到$b_i=\sum\limits_{d=1}^i{\mu(i)(\lfloor \frac{i}{d} \rfloor})^n$ 整除分块的话会T, 可以维护一个差分, 优化到$O(n ...
- 【PowerDesigner】【8】把Comment复制到name中和把name复制到Comment
原因:这两个字段的值很多时候其实是一样的,重写很麻烦 步骤:打开菜单Tools>Execute Commands>Edit/Run Script.. 或者用快捷键 Ctrl+Shift+X ...
- MSMQ 概述
MSMQ 概述 1) MSMQ概述 MSMQ 表示微软消息队列服务.MSMQ 可以工作在在线或者离线场景,并提供异步编程功能.如果客户端离线,MSMQ将会是最合适的方法,这是因为服务端不需要等待客户端 ...