NKOJ 4038(CQOI 2017) 小Q的棋盘(贪心)
来源:互联网 发布:陈巧生香炉官网淘宝网 编辑:程序博客网 时间:2024/05/26 05:52
考虑到是一颗树,所以先找出从0号点出发的最长链,假设长度为L。 如果L>=N,那么答案就是N+1 如果L<N,此时肯定发生了某些点走两次的情况,那么最优解就是在一些链上走2次,最后在最长链上走到底,这是显然的。因此答案是(N-L)/2+L+1
附上代码
#include<stdio.h>#include<iostream>#include<algorithm>#include<cstring>#define N 12345using namespace std;int v,n,l;int LA[N],NE[N],EN[N],TOT;void ADD(int x,int y){ TOT++; EN[TOT]=y; NE[TOT]=LA[x]; LA[x]=TOT;}void DFS(int x,int f,int d){ l=max(l,d); for(int i=LA[x];i;i=NE[i]) if(EN[i]!=f)DFS(EN[i],x,d+1);}int main(){ int i,x,y; scanf("%d%d",&v,&n); for(i=1;i<v;i++) { scanf("%d%d",&x,&y); ADD(x,y);ADD(y,x); } DFS(0,-1,0); if(l>=n)cout<<n+1; else cout<<min((n-l)/2+l+1,v);}
阅读全文
0 0
- NKOJ 4038(CQOI 2017) 小Q的棋盘(贪心)
- 洛谷3698 CQOI 2017 小Q的棋盘
- NKOJ 4040 (CQOI 2017) 小Q的表格(莫比乌斯反演+分块+递推+线性筛/欧拉函数+分块+线性筛)
- CQOI 2017 小Q的表格
- 【BZOJ4813】小Q的棋盘(CQOI2017)-贪心+DFS
- #bzoj3362#小Q的棋盘(贪心)
- 小 Q 的棋盘
- 贪心——BZOJ4813/Luogu3698 [CQOI2017]小Q的棋盘
- 【CQOI2017】小Q的棋盘
- CQOI2017 小Q的棋盘
- NKOJ 4042 (CQOI 2017) 老C的方块(最小割+染色)
- NKOJ 4043 (CQOI 2017) 老C的键盘 (树形DP)
- bzoj 4813 [Cqoi2017]小Q的棋盘(思维)
- bzoj 4813 [Cqoi2017]小Q的棋盘
- 【CQOI2017】bzoj4813 小Q的棋盘
- BZOJ 4813 [Cqoi2017]小Q的棋盘
- BZOJ4813: [Cqoi2017]小Q的棋盘
- BZOJ4813 [Cqoi2017]小Q的棋盘
- 二叉树的深度遍历 递归 和 堆栈法
- Java是什么?
- 集合中的集合_存储和遍历(增强型for循环和迭代器)
- apache-comnons系列之commons-io-2.5 org.apache.commons.io.IOUtils学习笔记
- HDU
- NKOJ 4038(CQOI 2017) 小Q的棋盘(贪心)
- 简单的学生排序系统
- python中字符串注意事项
- python-模块与包
- 关于详细的pipeline
- Hdu 2089
- 一例由于安全狗的设置导致flashfxp始终连接不上server-u设置的ftp服务器的问题
- Python 虚拟环境 virtualenv
- entity framework