博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 P3698 [CQOI2017]小Q的棋盘 解题报告
阅读量:4700 次
发布时间:2019-06-09

本文共 867 字,大约阅读时间需要 2 分钟。

P3698 [CQOI2017]小Q的棋盘

题目描述

小 Q 正在设计一种棋类游戏。

在小 Q 设计的游戏中,棋子可以放在棋盘上的格点中。某些格点之间有连线,棋子只能在有连线的格点之间移动。整个棋盘上共有 V 个格点,编号为0,1,2 … , V− 1,它们是连通的,也就是说棋子从任意格点出发,总能到达所有的格点。小 Q 在设计棋盘时,还保证棋子从一个格点移动到另外任一格点的路径是唯一的。

小 Q 现在想知道,当棋子从格点 0 出发,移动 N 步最多能经过多少格点。格点可以重复经过多次,但不重复计数。

输入输出格式

输入格式:

第一行包含2个正整数\(V\), \(N\),其中\(V\)表示格点总数,\(N\)表示移动步数。

接下来\(V−1\)行,每行两个数\(a_i,b_i\),表示编号为\(a_i,b_i\)的两个格点之间有连线。

输出格式:

输出一行一个整数,表示最多经过的格点数量。

说明:

对于 100%的测试点,\(N,V ≤ 100, 0 ≤a_i,b_i< V\)


我贪心算是废了

这个题真的不难想orz...

首先读题,这是一颗树。

然后发现最后一次走可以不回去,最后一次肯定走最长的链

然后其他的点多一次返回的开销


Code:

#include 
const int N=102;int min(int x,int y){return x
dep?mx:dep; for(int i=head[now];i;i=Next[i]) { int v=to[i]; if(!used[v]) dfs(v,dep+1); }}int main(){ scanf("%d%d",&n,&m); int u,v; for(int i=1;i

2018.7.11

转载于:https://www.cnblogs.com/butterflydew/p/9295427.html

你可能感兴趣的文章
各大主流.Net的IOC框架性能测试比较
查看>>
堆排序算法
查看>>
OC基础15:内存管理和自动引用计数
查看>>
【Deep Learning】genCNN: A Convolutional Architecture for Word Sequence Prediction
查看>>
IT增值服务,客户案例(一)--山东青岛在职人士,2年.Net经验,转Java开发半年
查看>>
jQuery 文件碎片
查看>>
Cocos2d-x之MenuItem
查看>>
OpenGL+VS2013+WIN7(64)组态
查看>>
curl命令具体解释
查看>>
关机相关(shutdown,reboot)
查看>>
android 视频通话开启呼叫等待后,来第三方的视频通话,接通后通话时间一直显示为0,过几秒之后视频通话自己主动挂断...
查看>>
git笔记之解决eclipse不能提交jar等文件的问题
查看>>
Mac中MacPorts安装和使用
查看>>
每日笔记---使用@ConfigurationProperties读取yml配置
查看>>
(9) tomcat中实现同一虚拟机中所有应用程序单点登录SSO
查看>>
版权所有LIKEWING_柳我借地存个图学习一下
查看>>
在Salesforce中以PDF的格式显示对应的页面
查看>>
使用多线程完成Socket
查看>>
项目模板参数化(上)
查看>>
ADC for programmable logic uses one capacitor
查看>>