洛谷 P3698 [CQOI2017]小Q的棋盘 解题报告

时间:2023-01-10 11:18:53

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 <cstdio>
const int N=102;
int min(int x,int y){return x<y?x:y;}
int head[N],to[N<<1],Next[N<<1],cnt;
void add(int u,int v)
{
to[++cnt]=v;Next[cnt]=head[u];head[u]=cnt;
}
int mx=0,used[N],n,m;
void dfs(int now,int dep)
{
used[now]=1;
mx=mx>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<n;i++)
{
scanf("%d%d",&u,&v);
add(u,v),add(v,u);
}
dfs(0,1);
if(m<mx-1)
printf("%d\n",m+1);
else
printf("%d\n",min(n,mx+(m-mx+1)/2));
return 0;
}

2018.7.11

洛谷 P3698 [CQOI2017]小Q的棋盘 解题报告的更多相关文章

  1. 洛谷P3698 &lbrack;CQOI2017&rsqb;小Q的棋盘

    传送门 考虑一个贪心,先在根节点周围转一圈,然后再往下走最长链肯定是最优的 然后设最长链的长度为$d$,如果$m\leq d$,那么答案为$m+1$ 否则的话还剩下$m-d+1$步,又得保证能走回来, ...

  2. BZOJ4813或洛谷3698 &lbrack;CQOI2017&rsqb;小Q的棋盘

    BZOJ原题链接 洛谷原题链接 贪心或树形\(DP\)都可做,但显然\(DP\)式子不好推(因为我太菜了),所以我选择贪心. 很显然从根出发主干走最长链是最优的,而剩下的点每个都需要走两步,所以用除去 ...

  3. &lbrack;bzoj4815&rsqb; &lbrack;洛谷P3700&rsqb; &lbrack;Cqoi2017&rsqb; 小Q的表格

    Description 小Q是个程序员. 作为一个年轻的程序员,小Q总是被老C欺负,老C经常把一些麻烦的任务交给小Q来处理. 每当小Q不知道如何解决时,就只好向你求助.为了完成任务,小Q需要列一个表格 ...

  4. 洛谷 P3700 - &lbrack;CQOI2017&rsqb;小Q的表格(找性质&plus;数论)

    洛谷题面传送门 又是一道需要一些观察的数论 hot tea-- 注意到题目中 \(b·f(a,a+b)=(a+b)·f(a,b)\) 这个柿子长得有点像求解 \(\gcd\) 的辗转相除法,因此考虑从 ...

  5. P3698 &lbrack;CQOI2017&rsqb;小Q的棋盘

    题目链接 题意分析 首先 我们肯定会贪心的走从根节点到叶子结点最长的一条链 首先没有过剩的就好办了 但是有的话 我们就一边往下走 一边走分支 分支上每一个点平均走过两次 所以我们把剩下的除以\(2\) ...

  6. 洛谷 P4279 &lbrack;SHOI2008&rsqb;小约翰的游戏 解题报告

    P4279 [SHOI2008]小约翰的游戏 题目描述 小约翰经常和他的哥哥玩一个非常有趣的游戏:桌子上有\(n\)堆石子,小约翰和他的哥哥轮流取石子,每个人取的时候,可以随意选择一堆石子,在这堆石子 ...

  7. bzoj 4813&colon; &lbrack;Cqoi2017&rsqb;小Q的棋盘 &lbrack;树形背包dp&rsqb;

    4813: [Cqoi2017]小Q的棋盘 题意: 某poj弱化版?树形背包 据说还可以贪心... #include <iostream> #include <cstdio> ...

  8. BZOJ&lowbar;4813&lowbar;&lbrack;Cqoi2017&rsqb;小Q的棋盘&lowbar;dfs

    BZOJ_4813_[Cqoi2017]小Q的棋盘_dfs Description 小Q正在设计一种棋类游戏.在小Q设计的游戏中,棋子可以放在棋盘上的格点中.某些格点之间有连线,棋子只能 在有连线的格 ...

  9. 洛咕 P3700 &lbrack;CQOI2017&rsqb;小Q的表格

    洛咕 P3700 [CQOI2017]小Q的表格 神仙题orz 首先推一下给的两个式子中的第二个 \(b\cdot F(a,a+b)=(a+b)\cdot F(a,b)\) 先简单的想,\(F(a,a ...

随机推荐

  1. 配置Java SSL 访问网站证书

    最近在开发 Java 访问 Azure ServiceBus 时遇到SSL证书问题,导致JAVA报错,不能正常访问,报错信息如下: javax.net.ssl.SSLException: Connec ...

  2. HTML5 屏蔽触屏滚动

    开发移动的html应用时常常需要将网页触控事件屏蔽掉.代码如下: //屏蔽全局触控事件 document.ontouchmove = function(e){ e.preventDefault();} ...

  3. 修复ext4日志(jbd2)bug&lpar; Ext4 文件系统有以下 Bug&rpar;

    from:http://blog.donghao.org/2013/03/20/%E4%BF%AE%E5%A4%8Dext4%E6%97%A5%E5%BF%97%EF%BC%88jbd2%EF%BC% ...

  4. 转:Directshow开发的一些例子

    DirectShow Filter 开发典型例子分析 --字幕叠加 (FilterTitleOverlay)1 本文分析一下<DirectShow开发指南>中的一个典型的Transform ...

  5. dos 下 注册win 组件 ocx 后缀的

    C:\WINDOWS\system32>regsvr32 NTGraph.ocx

  6. AutoCompleteTextview、MultiAutoCompleteTextView

    AutoCompleteTextview     动态匹配输入内容文本框      属性:           android:completionThreshold="2";   ...

  7. Android中EditText设置输入条件

    一.应用场景 之前做商城应用时,会有对用户资料的设置情况进行限制,如下: (1)用户邮箱,应当只允许输入英文字母,数字和@.两个符号, (2)用户手机,应当只能输入数字,禁止输入其他字符. (3)用户 ...

  8. Ch&period;3 Aray and String

    3-1 scrore  Here is a string with o and x. The length is between 1 to 80. Calcuate the score. The sc ...

  9. 8&period;23&period;3 IO-转换流的作用

    Reader和Writer最重要的子类是InputStreamReader和OutputStreamWriter类. InputStreamReader类包含了一个底层输入流,可以从中读取原始字节.它 ...

  10. 【专栏学习】APM——异步编程模型(&period;NET不推荐)

    (1)learning hard C#学习笔记 异步1:<learning hard C#学习笔记>读书笔记(20)异步编程 (2)<C# 4.0 图解教程> 22.4 异步编 ...