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的更多相关文章
随机推荐
- piggy.lnk 简析
piggy.lnk 简析 SECTIONS { .data : { input_len = .; LONG(input_data_end - input_data) input_data = .; * ...
- yii框架中获取添加数据后的id值
Yii::$app->db->createCommand()->insert('month4_user',['openid'=>$openid,'integ'=>0])- ...
- 使用telnet模拟邮件的收发
smtp协议是一个简单的邮件传输协议,利用它我们可以将邮件发送给别人,这里将通过telnet这个程序利用smtp协议从网易向gmail发送一封邮件 基本步骤如下: 1.使用telnet连接smtp服务 ...
- Git-解释“Swap file .MERGE_MSG.swp already exists”的问题
当合并代码时非正常保存退出遇到的问题. 博客原文: https://blog.csdn.net/qq_32452623/article/details/78395832
- python第三方库scrapy框架的安装
1.确认python和pip安装成功 2.安装win32py 提供win32api,下载地址:https://sourceforge.net/projects/pywin32/fil ...
- js 处理 cookie的存储与删除
<script> //JS操作cookies方法! //写cookies function setCookie(c_name, value, expiredays){ var exdate ...
- sqlite3 删除数据
cx = sqlite3.connect("c:/数据库地址") # 打开数据库cu = cx.cursor()# delete the rowcu.execute("d ...
- 【LeetCode】数组移除元素
链表等复杂数据结构用多了,简单的数组操作也不能遗忘! 1. 给定一个有序数组,移除所有重复元素并返回新的数组长度,不能分配额外数组的内存空间. e.g. 给定输入的数组 = [1,1,2],函数应当返 ...
- Web Services的学习二
1.SOAP简单对象访问协议 基于XML的简单协议,可让应用程序在HTTP上进行信息交换,或者说SOAP就是用于访问网络服务的协议.它独立于平台,独立于语言,很简单并可扩展,而且允许绕过防火墙. 2. ...
- Qt Widgets——动作类与小部件菜单项
本文主要涉及以下三个类: QAction ——QWidgetAction QActionGroup QAction可称为动作类,它一般可当作菜单中的项组成菜单,也可作为工具栏上的按钮,它主要由图标.文 ...