2025百度之星第一轮T1:Bus Station题解
2025 第一轮 A 百度之星题解
简要题目
有一棵 72 个节点的树。令\(w(u, v)\)表示树上两点之间的简单路径。称一个树上所有简单路径组成的集合的子集 S 是好的,当且仅当树上每条边\((u, v)\)都被恰好一条 S 中的路径覆盖。
对于一个好的集合 S,设\(f(S)\)表示对所有 1≤i≤n,结点 i 在 S 中作为某条路径端点的次数的最大值,即\(f(S)=\max _{i=1}^{n}(\sum_{w(u, v) \in S}[u=i \vee v=i])\)。需要统计有多少个好的集合 S 满足\(f(S)\)取到所有好的集合 T 中\(f(T)\)的最小值,答案对 998244353 取模。
注:
一条路径是简单路径,当且仅当其不重复经过任何结点。树上任意两个结点之间有且仅有一条简单路径。
树上所有简单路径组成的集合,可以看做对每个 1≤u≤v≤n 的节点对\((u, v)\),\(w(u, v)\)组成的集合。
称边\((u, v)\)被简单路径\(s \leadsto t\)覆盖,当且仅当点 u,v 均在\(s \leadsto t\)的简单路径上。
分析过程
1. 找浅显性质:
边经过恰好一次,点重复经过,但是这个性质好像没用,再找比较简单的、特殊的情况。
链:显然就是 1,链接方法从头到尾。
菊花图:发现对于奇数还是偶数好像有区别,就分开看。

* 对于奇数个叶子,有一个叶子 -- 根,其余都是叶子 -- 叶子。

* 对于偶数个都是叶子 -- 叶子,但 f 值都为 1。
* 再构造一个稍微一般一点的,发现 f 值都为 1,猜想 f 值始终为 1。
2. 证明 f 值始终为 1:
证明每个点的最大成为端点数,就给点们分类证,显然分成做端点的点和不做端点的点。
\(f \ge 1\)由构造易证。
反证法证明\(f \leq 1\):这里显然在考察贪心,所以用贪心的方法,设计决策,可以用转化法、决策包容性、范围缩放法,证明不等式,用反证法,证明\(f>1\)不成立。
范围缩放法:不涉及范围,不可用。
决策包容性:不知道怎么决策,不可用。
转化法:可以用,如果一个点 u 是两条路径的端点,那么这两条路劲可以在 u 合二为一;如果一个点 u 是三条路径的端点,那么这三条路劲中的两条可以在 u 合二为一,所以 u 就是一个路径的端点。
u 是奇数个路径的端点,可以转化成 u 是一个路劲的端点;u 是偶数个路劲的端点,可以转化成 u 不做端点。
3. 计数:
不是搜索就是递推就是推公式。
但是这个题的证明 f==1 的过程带来的构造启示:先让每个边都是一个路径,在对作为端点数 1 的点进行合并,我们只需要看看每个点如何合并,因为每个点的合并方法是并列关系,所以只需分别对于每个点求出把这个点合并成只作为一个端点的方案数,再用乘法原理将他们相乘即可。
看看每个点怎么合并:
先看怎么合并和谁有关,显然只与当前点最为几次端点有关,联系上文,每个点最初作为(节点度数)个端点,且每个端点如何合并,不影响其他点。
根据菊花图的分析,奇数度数和偶数度数不一样,分开分析:分析流程,将这个点与其连向的点组成菊花图,分析叶子 -- 叶子。

* 度数偶数:1 与其他 7 个点连,7 种;第二个点与剩下(8-2-1)=5 个点连,5 种,以此类推。方案数(opeven)\(opeven=(d[u]-1)!!\)。

度数奇数:最后剩下一个点与 u 相连,由于对称性,剩余哪个都一样,所以的系数是\(opodd = d[u]* opeven_{d'=d[u]-1}=d[u]*(d[u]-2)!!=d[u]!!\)。
代码实现
1) #include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5 + 10, M = 998244353;
// const int N = 15, M = 998244353;
int d[N];
int jie[N];
signed main()
{
jie[1] = 1;
for (int i = 3; i <= N - 2; i += 2)
jie[i] = (jie[i - 2] * i) % M;
int T;
cin >> T;
while (T--)
{
int n;
cin >> n;
memset(d, 0, sizeof d);
for (int i = 1; i < n; ++i)
{
int t1, t2;
cin >> t1 >> t2;
d[t1]++;
d[t2]++;
}
int ans = 1;
for (int i = 1; i <= n; ++i)
{
if (d[i] % 2)
ans = (ans * jie[d[i]]) % M;
else
ans = (ans * jie[d[i] - 1]) % M;
}
cout << ans << endl;
}
return 0;
}
2025百度之星第一轮T1:Bus Station题解的更多相关文章
- 2014百度之星第一题Energy Conversion
Energy Conversion Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- hdu 6114 百度之星复赛B T1
Chess Problem Description 車是中国象棋中的一种棋子,它能攻击同一行或同一列中没有其他棋子阻隔的棋子. 一天,小度在棋盘上摆起了许多車……他想知道,在一共N×M个点的矩形棋盘中 ...
- 2018百度之星B轮 degree
degree Accepts: 1581 Submissions: 3494 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/1 ...
- HDU-6668-Game 百度之星第一场B
在多个连续的区间段中,选出连续重复度最高的区间,这样连续选出多个重复度最高的不相交区间,然后从第一个区间的左边已经右边开始,连续贪心即可,答案取最小值 #include<iostream> ...
- 【百度之星2014~初赛(第二轮)解题报告】JZP Set
声明 笔者近期意外的发现 笔者的个人站点http://tiankonguse.com/ 的非常多文章被其他站点转载,可是转载时未声明文章来源或參考自 http://tiankonguse.com/ 站 ...
- 百度之星B题(组合数)
Problem B Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total ...
- 【百度之星2014~初赛(第二轮)解题报告】Chess
声明 笔者近期意外的发现 笔者的个人站点http://tiankonguse.com/ 的非常多文章被其他站点转载.可是转载时未声明文章来源或參考自 http://tiankonguse.com/ 站 ...
- 百度之星A
Scenic Popularity Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others ...
- 2014百度之星预赛(第二场)——Best Financing
2014百度之星预赛(第二场)--Best Financing Problem Description 小A想通过合理投资银行理財产品达到收益最大化.已知小A在未来一段时间中的收入情况,描写叙述为两个 ...
- 百度之星2017初赛A-1005-今夕何夕
今夕何夕 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
随机推荐
- K8s新手系列之Pod中容器的镜像拉取策略
概述 在 Kubernetes(K8s)里,容器镜像拉取策略(ImagePullPolicy)决定了 K8s 在创建或重启 Pod 时,如何处理容器镜像的拉取操作.这一策略能够确保使用的镜像始终是最新 ...
- smail log插桩(模板)
即插即用 后面都用hook了,但是为了方便,还是分享下吧 Log const-string v0, "MYTAG" const-string v1, "Message&q ...
- 【HUST】论于渊《Orange‘s:一个操作系统的实现》第三章中PagingDemoProc的必要性,是否可以直接调用LinearAddrDemo?
相关代码如下(第三章pmtest9a.asm改写): LinearAddrDemo equ 00401000h ProcHust equ 00401000h ProcIS19 equ 00501000 ...
- 【MOOC】华中科技大学操作系统慕课答案-第1~3章单元测试
单选 1 下列说法错误的是 . A. 手工操作阶段,资源利用率低的原因是因为程序的准备和撤销都需要手工完成. B. 单道批处理系统中CPU和外设交替工作和空闲. √C. 单道批处理系统效率之所以比手工 ...
- 内网私仓全流程搭建记录(一)-Nexus3环境搭建
1.部署 1)在https://help.sonatype.com/repomanager3/product-information/download中下载对应环境及版本,此处要求3以上版本,本次以& ...
- 系统自动化DTO实施流程简图
- WordPress插件:dsdiss-ai-paraphrasing(火山引擎版)文章伪原创 !一键创作!升级!
本站原创!<文章伪原创插件(火山引擎版)>是一款基于WordPress开发的高效内容创作工具,依托火山方舟AI模型实现智能化文章伪原创处理.插件支持在后台配置API密钥与模型ID,可灵活设 ...
- C# 应用程序域
在.NET中,每个应用程序域都是一个独立的执行环境,有自己的安全边界和上下文.当使用AppDomain.ExecuteAssembly方法在一个新的应用程序域中执行一个程序集时,这个程序集将会在新的应 ...
- 使用Plop.js高效生成模板文件
前情 开发是个创造型的职业,也是枯燥的职业,因为开发绝大多数都是每天在业务的代码中无法自拨,说到开发工作,就永远都逃不开新建文件的步骤,特别现在组件化开发胜行,每天都是在新建新建组件的道路上一去不返, ...
- Android Studio 虚拟机一直黑屏原因及解决办法
虚拟机一直黑屏原因: android模拟器在创建时,一般默认设置为热启动,所以每次关闭模拟器时,会提示保存当前运行界面状态,若选择取消,则下一次启动会以最近一次保存的状态启动显示.如果某次关闭时保存的 ...