news 2026/6/15 18:18:21

打卡信奥刷题(2754)用C++实现信奥题 P3698 [CQOI2017] 小Q的棋盘

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
打卡信奥刷题(2754)用C++实现信奥题 P3698 [CQOI2017] 小Q的棋盘

P3698 [CQOI2017] 小Q的棋盘

题目描述

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

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

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

输入格式

第一行包含2 22个正整数V , N V, NV,N,其中V VV表示格点总数,N NN表示移动步数。

接下来V − 1 V-1V1行,每行两个数a i , b i a_i,b_iai,bi,表示编号为a i , b i a_i,b_iai,bi的两个格点之间有连线。

输出格式

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

输入输出样例 #1

输入 #1

5 2 1 0 2 1 3 2 4 3

输出 #1

3

输入输出样例 #2

输入 #2

9 5 0 1 0 2 2 6 4 2 8 1 1 3 3 7 3 5

输出 #2

5

说明/提示

【输入输出样例 1 说明】

从格点0 00出发移动2 22步。经过0 , 1 , 2 0, 1, 20,1,23 33个格点。

【输入输出样例 2 说明】

一种可行的移动路径为0 → 1 → 3 → 5 → 3 → 7 0 \to 1 \to 3 \to 5 \to 3 \to 7013537,经过0 , 1 , 3 , 5 , 7 0, 1, 3, 5, 70,1,3,5,75 55个格点。

【数据规模与约定】

对于100 % 100\%100%的测试点,1 ≤ N , V ≤ 100 1\le N,V \le 1001N,V1000 ≤ a i , b i < V 0 \le a_i,b_i< V0ai,bi<V

C++实现

#include<bits/stdc++.h>usingnamespacestd;constintMAXN=103;intNt[MAXN<<1],Head[MAXN<<1],to[MAXN<<1],tot;boolused[MAXN];intn,m;intmx=0;voidadd(inta,intb){Nt[++tot]=Head[a];to[tot]=b;Head[a]=tot;}voiddfs(intpos,intdep){//最长链可以用深搜跑最大深度得到used[pos]=1;mx=max(mx,dep);for(inti=Head[pos];i;i=Nt[i]){inty=to[i];if(used[y])continue;dfs(y,dep+1);}}intmain(){scanf("%d%d",&n,&m);for(inti=1;i<n;i++){inta,b;scanf("%d%d",&a,&b);add(a,b);add(b,a);}dfs(0,1);if(m<=mx-1)printf("%d\n",m+1);//如果走不完最长链,那答案就是步数+1elseprintf("%d\n",min(n,mx+(m-mx+1)/2));return0;}

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/15 13:10:08

2026毕设ssm+vue旅店管理系统论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景随着我国旅游业的蓬勃发展和商务出行需求的持续增长&#xff0c;酒店行业迎来了前所未有的发展机遇。根据中国饭店协会数据显示…

作者头像 李华
网站建设 2026/6/10 18:29:54

激光切割雕刻机设计

2激光切割机所能实现的两种功能及特点 2.1激光切割 采用激光切割技术切割金属板材时&#xff0c;由于对板材无作用力&#xff0c;且热形变很小&#xff0c;所以适合切割精度要求较高的零件。激光切割术的加工原理是用凸透镜将激光器发出的激光束聚焦在工件表面上产生的高温使工…

作者头像 李华
网站建设 2026/6/14 18:44:54

2026毕设ssm+vue论文评审系统论文+程序

本系统&#xff08;程序源码&#xff09;带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、选题背景关于高校毕业论文管理问题的研究&#xff0c;现有研究主要以传统人工管理模式和单一功能管理系统为主&#xff0c;专门针对基于…

作者头像 李华
网站建设 2026/6/15 12:28:02

收藏!大模型转行全攻略:小白与程序员必看的就业逻辑拆解

在当下科技圈&#xff0c;大模型无疑是站在风口的核心赛道&#xff0c;几乎占据了行业热门话题的半壁江山&#xff0c;成为新时代技术人竞相关注的焦点。不少程序员和职场新人都有这样的困惑&#xff1a;作为新兴领域&#xff0c;大模型行业理应人才缺口大、竞争相对缓和&#…

作者头像 李华
网站建设 2026/6/15 12:27:50

基于哈里斯鹰算法HHO优化TV图像修复附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f447; 关注我领取海量matlab电子书和数学建模资料 &#x1f34…

作者头像 李华