洛谷P3698 [CQOI2017]小Q的棋盘
考虑一个贪心,先在根节点周围转一圈,然后再往下走最长链肯定是最优的
然后设最长链的长度为$d$,如果$m\leq d$,那么答案为$m+1$
否则的话还剩下$m-d+1$步,又得保证能走回来,所以答案为$min\{n,d+\frac{m-d+1}{2}\}$
//minamoto
#include<iostream>
#include<cstdio>
using namespace std;
#define getc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
char buf[<<],*p1=buf,*p2=buf;
template<class T>inline bool cmax(T&a,const T&b){return a<b?a=b,:;}
int read(){
#define num ch-'0'
char ch;bool flag=;int res;
while(!isdigit(ch=getc()))
(ch=='-')&&(flag=true);
for(res=num;isdigit(ch=getc());res=res*+num);
(flag)&&(res=-res);
#undef num
return res;
}
const int N=;
int head[N],Next[N<<],ver[N<<],tot;
inline void add(int u,int v){
ver[++tot]=v,Next[tot]=head[u],head[u]=tot;
}
int dep[N],n,m,res,d;
void dfs(int u,int fa){
dep[u]=dep[fa]+;
for(int i=head[u];i;i=Next[i]){
int v=ver[i];
if(v!=fa) dfs(v,u);
}
}
int main(){
// freopen("testdata.in","r",stdin);
n=read(),m=read()+;
for(int i=,u,v;i<n;++i)
u=read()+,v=read()+,add(u,v),add(v,u);
dfs(,);
for(int i=;i<=n;++i) cmax(d,dep[i]);
if(m<=d) return printf("%d\n",m),;
printf("%d\n",min(n,d+(m-d+)/));
return ;
}
洛谷P3698 [CQOI2017]小Q的棋盘的更多相关文章
- 洛谷 P3698 [CQOI2017]小Q的棋盘 解题报告
		P3698 [CQOI2017]小Q的棋盘 题目描述 小 Q 正在设计一种棋类游戏. 在小 Q 设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能在有连线的格点之间移动.整个棋盘上 ... 
- BZOJ4813或洛谷3698 [CQOI2017]小Q的棋盘
		BZOJ原题链接 洛谷原题链接 贪心或树形\(DP\)都可做,但显然\(DP\)式子不好推(因为我太菜了),所以我选择贪心. 很显然从根出发主干走最长链是最优的,而剩下的点每个都需要走两步,所以用除去 ... 
- [bzoj4815] [洛谷P3700] [Cqoi2017] 小Q的表格
		Description 小Q是个程序员. 作为一个年轻的程序员,小Q总是被老C欺负,老C经常把一些麻烦的任务交给小Q来处理. 每当小Q不知道如何解决时,就只好向你求助.为了完成任务,小Q需要列一个表格 ... 
- 洛谷 P3700 - [CQOI2017]小Q的表格(找性质+数论)
		洛谷题面传送门 又是一道需要一些观察的数论 hot tea-- 注意到题目中 \(b·f(a,a+b)=(a+b)·f(a,b)\) 这个柿子长得有点像求解 \(\gcd\) 的辗转相除法,因此考虑从 ... 
- P3698 [CQOI2017]小Q的棋盘
		题目链接 题意分析 首先 我们肯定会贪心的走从根节点到叶子结点最长的一条链 首先没有过剩的就好办了 但是有的话 我们就一边往下走 一边走分支 分支上每一个点平均走过两次 所以我们把剩下的除以\(2\) ... 
- bzoj 4813: [Cqoi2017]小Q的棋盘 [树形背包dp]
		4813: [Cqoi2017]小Q的棋盘 题意: 某poj弱化版?树形背包 据说还可以贪心... #include <iostream> #include <cstdio> ... 
- BZOJ_4813_[Cqoi2017]小Q的棋盘_dfs
		BZOJ_4813_[Cqoi2017]小Q的棋盘_dfs Description 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能 在有连线的格 ... 
- 洛咕 P3700 [CQOI2017]小Q的表格
		洛咕 P3700 [CQOI2017]小Q的表格 神仙题orz 首先推一下给的两个式子中的第二个 \(b\cdot F(a,a+b)=(a+b)\cdot F(a,b)\) 先简单的想,\(F(a,a ... 
- [BZOJ4813][CQOI2017]小Q的棋盘(DP,贪心)
		4813: [Cqoi2017]小Q的棋盘 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 804 Solved: 441[Submit][Statu ... 
随机推荐
- HDU 3602 2012【01 背包变形】
			题意: 有 n 个团队和 m 艘船,每艘船的载客量为 k,每个团队的人数为ai+1 ,转载该团队可获利润 bi,要求每个团队的所有人必须在同一艘船上, 且团队优先级高的团队所在船编号不能大于优先级低的 ... 
- hdu - 1704 Rank(简单dfs)
			http://acm.hdu.edu.cn/showproblem.php?pid=1704 遇到标记过的就dfs,把隐含的标记,最后计数需要注意. #include <cstdio> # ... 
- [bzoj2882]工艺_后缀数组
			工艺 bzoj-2882 题目大意:题目链接. 注释:略. 想法: 跟bzoj1031差不多啊. 把串倍长后扫$sa$数组. 最后再统计答案即可. Code: #include <iostrea ... 
- 创建简单的spring-mvc项目
			1.第一步:创建项目 new—>Dynamic Web Project 项目创建成功后,展示如图: 2.第二步:导入springmvc的jar包和common-logging.jar 3.第三步 ... 
- 选择器的使用(empty选择器)
			<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><meta ... 
- TP-Link的Atheros芯片的WR886n v5 安装SuperWRT系统
			安装SuperWRT系统 本教程以TP-Link的Atheros芯片的WR886n v5为例,教新手如何刷入一个已支持设备的固件. 下载设备固件请访问:这里 (没有支持你的设备?自由动手一下:hack ... 
- JavaScript错误处理和堆栈追踪
			转自:https://github.com/dwqs/blog/issues/49 有时我们会忽略错误处理和堆栈追踪的一些细节, 但是这些细节对于写与测试或错误处理相关的库来说是非常有用的. 例如这周 ... 
- java  STW  stop the world 哈哈就是卡住了
			java STW stop the world 哈哈就是卡住了 学习了:http://www.jb51.net/article/125400.htm 
- formData 对象
			(1)创建的formData打印为空? var edition=$("#edinum").val();//版本号 var uploader=$("#upman" ... 
- 【POJ 3122】 Pie (二分+贪心)
			id=3122">[POJ 3122] Pie 分f个派给n+1(n个朋友和自己)个人 要求每一个人分相同面积 但不能分到超过一个派 即最多把一整个派给某个人 问能平均分的最大面积 二 ... 
