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的更多相关文章
随机推荐
- python基础之 序列 pickle&json
内容梗概: 1. 什么是序列化 2. pickle(重点) 3. shelve 4. json(重点) 5. configparser模块 1. 什么是序列化 在我们存储数据或者网络传输数据的时候. ...
- 自用chrome+油猴脚本,使用迅雷下载百度云大文件,一键离线下载
油猴是有名的火狐浏览器插件(Greasemonkey),当然也有Chrome版本(tampermonkey),甚至IE.Safari.Opera都有……虽然这些插件是由不同的开发者开发出来的,界面也可 ...
- 实战dataguard主从切换
前言: 众所周知DataGuard一般的切换分成两种,一种是系统正常的情况下的切换这种方式为:switchover是无损切换,不会丢失数据:另外一种方式属于灾难情况下的切换,这种情况下一般主库已经启动 ...
- 重写nyoj2——括号匹配
#include "bits/stdc++.h" using namespace std; int comp(char s1,char s2){ ; ; } int main() ...
- SpringBoot热部署:spring-boot-devtools在Idea中热部署方法
1 pom.xml文件 注:热部署功能spring-boot-1.3开始有的 <!--添加依赖--> <dependency> <groupId>org.sprin ...
- git设置远程同步分支
git push --set-upstream origin yourBranchName
- 十四、MVC的WEB框架(Structs2)
一.Structs2中的Session 1.一个是传统的servlet包下的HttpSession,一个是Structs2中自己定义的Session Servlet下的Session获取方法:Serv ...
- 十二、持久层框架(MyBatis)
一.PageHelper分页插件的使用 PageHelper是一款MyBatis的分页插件,只需要简单的配置,然后直接调用方法就可以. 1.配置PageHelper插件 在mybatis-config ...
- holiday
holiday.pas/c/cpp Description 经过几个月辛勤的工作,FJ 决定让奶牛放假.假期可以在1…N 天内任意选择一段(需要连 续),每一天都有一个享受指数W.但是奶牛的要求非常苛 ...
- C#调用接口返回json数据中含有双引号 或其他非法字符的解决办法
这几天,调用别人接口返回json数据含有特殊符号(双引号),当转换成json对象总是报错, json字符格式如下 { "BOXINFO":[ { ", "ITE ...