P11529 [THUPC 2025 初赛] 辞甲猾扎题目描述给你一棵n nn个点的无根树有k kk个点初始为黑色其余点初始为灰色你可以在一开始将一些灰色点染成白色。染完后现在进行如下操作直到树上不存在灰色点。每一轮对所有灰色点同时进行如下操作检查与该灰色点u uu直接相连的点有没有黑色或白色点如果没有则u uu保持灰色。如果与u uu直接相连的点有白色点则u uu变为白色。如果与u uu直接相连的点有黑色点则u uu变为黑色。这个顺序说明同时与白色和黑色相邻时会被染成白色。注意此处对所有灰色点同时进行操作也就是说在这一轮被染上颜色的点不能作为其它点改变颜色的根据。现在求一开始最少染几个点为白色可以使树最终黑色点不超过k kk个。输入格式第一行两个整数n , k ( 1 ≤ n ≤ 10 6 , 1 ≤ k ≤ n ) n,k\;(1\le n\le 10^6,1\le k \le n)n,k(1≤n≤106,1≤k≤n)含义见上文。第二行k kk个整数代表一开始被染成黑色的点的标号。第3 ∼ n 2 3\sim n23∼n2行每行两个整数u , v ( 1 ≤ u , v ≤ n ) u,v\;(1\le u,v\le n)u,v(1≤u,v≤n)代表一条树上的边。输出格式一行一个整数为答案。输入输出样例 #1输入 #15 2 3 5 1 2 1 3 2 4 2 5输出 #11输入输出样例 #2输入 #210 3 1 6 8 1 2 2 3 3 4 4 5 4 6 5 7 5 8 6 9 7 10输出 #23说明/提示对于第一组样例一开始将2 22号点染白即可对于第二组样例一开始将3 , 4 , 9 3,4,93,4,9号点染白为满足条件且数量最小一组方案题目来源来自 2025 清华大学学生程序设计竞赛暨高校邀请赛THUPC2025初赛。题解等资源可在 https://gitlink.org.cn/thusaa/thupc2025pre/tree/master 查看。C实现#includebits/stdc.husingnamespacestd;typedeflonglongll;intread(){intx0,f1;charcgetchar();while(c0||c9){if(c-)f-1;cgetchar();}while(c0c9)xx*10c-0,cgetchar();returnx*f;}namespacetokido_saya{constintmaxn1e65;structedge{intnext,to;}e[maxn*2];inth[maxn],cnt,f[maxn][4],n,k,b[maxn],nr[maxn],ans;voidaddedge(intx,inty){e[cnt].nexth[x],e[cnt].toy,h[x]cnt;}voiddfs(intu,intfa){if(b[u])f[u][0]f[u][1]f[u][2]1e9;elsef[u][0]1,f[u][1]1e9;for(intih[u];i;ie[i].next){intve[i].to;if(vfa)continue;dfs(v,u);if(!b[u])f[u][0]min(min(f[v][0],f[v][1]),min(f[v][2],f[v][3])),f[u][0]min(f[u][0],(int)1e9);if(!b[u])f[u][1]min(f[u][3]f[v][0],f[u][1]min(min(f[v][0],f[v][1]),f[v][3])),f[u][1]min(f[u][1],(int)1e9);if(!b[u])f[u][2]min(f[v][1],f[v][3]),f[u][2]min(f[u][2],(int)1e9);f[u][3]min(min(f[v][0],f[v][1]),f[v][3]),f[u][3]min(f[u][3],(int)1e9);}if(nr[u]!b[u])f[u][3]1e9;}intmain(){intx,y;nread(),kread();for(inti1;ik;i)xread(),b[x]1;for(inti1;in;i){xread(),yread();addedge(x,y),addedge(y,x);}for(intu1;un;u)if(b[u])for(intih[u];i;ie[i].next){intve[i].to;nr[v]1;}dfs(1,0);printf(%d,min(min(f[1][0],f[1][1]),f[1][3]));return0;}}intmain(){returntokido_saya::main();}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容
企业数字化 ERP 产品动态
相关推荐
38.多智能体系统真的更好吗 多智能体系统真的更好吗?角色拆分、协作与失控风险 码海寻道 大模型、智能体与 RAG 工程组件系列第 38 篇 “让多个 Agent 协作”听起来很强大,但多一个 Agent 就多一套 Prompt、状态、工具权限和失败路径。多智能体的价值不在于数量,而在于… · 2026/9/24 17:45:23
元宝 LeetCode 146. LRU 缓存 Java实现 LeetCode 146 LRU 缓存是一道非常经典的数据结构设计题。要求
“get” 和
“put” 操作都在 O(1) 时间复杂度内完成。
实现 O(1) 时间复杂度的核心思路是:哈希表(HashMap) 双向链表。
HashMap:用于通过
“key” 快速定位到链表中的… · 2026/9/24 17:45:23
Django入门教程(二十七):博客项目实战(八)——表单处理与收藏功能 一、收藏功能的数据模型设计
收藏功能的核心是:一个用户可以收藏多篇文章,一篇文章可以被多个用户收藏。这是典型的多对多(ManyToMany)关系。
我们不需要新建模型——Django 的 User 模型是内置的,只需要在 Post 模型中添加一个 ManyToManyField 指向 User。 python # 文… · 2026/9/24 17:45:23
Java Web购物车系统实战:webbikeshop部署与改造 简介:基于Javaweb的山地车网上购物系统完整项目,面向正在学习JavaWeb开发、需要综合实战练习的在校生或初级开发者。项目直接导入即可运行使用,覆盖从登录注册到店铺管理、主页商品浏览与搜索、购物车、下单支付直至发货收货评论的完整交易链… · 2026/9/24 18:15:10
pycrfsuite实战糖尿病NER:从特征工程到知识图谱构建 简介:一份面向天池瑞金医院MMC人工智能辅助构建知识图谱大赛初赛的完整参赛方案,聚焦糖尿病相关医疗命名实体识别,基于pycrfsuite实现。资源包共1699个文件、约11.65MB,其中784个csv与485个txt构成训练语料和特征数据,… · 2026/9/24 18:15:10
天池瑞金糖尿病NER项目:pycrfsuite源码拆解与复现指南 简介:面向天池瑞金医院MMC人工智能辅助构建知识图谱大赛初赛,这份压缩包是基于pycrfsuite的糖尿病相关医疗命名实体识别参赛方案。资源面向参赛选手、自然语言处理学习者和医疗文本挖掘从业者,包含设计文档、源代码及配套数据说明,… · 2026/9/24 18:15:10
Python智能垃圾分类系统源码解析:从毕业设计到Grad-CAM可视化 简介:这份资源是一套基于Python开发的智能垃圾分类系统完整源码与部署指南,面向计算机相关专业的毕业设计、期末大作业及课程实践场景,适合具备一定Python基础、希望借助深度学习完成视觉识别项目的学生与开发者。压缩包共24个文件࿰… · 2026/9/24 18:15:10
Keras-YOLOv3息肉检测实战:从数据准备到anchor聚类优化 简介:这份资源面向具备一定深度学习基础的开发者与医疗影像分析学习者,提供基于Python与Keras-YOLOv3实现息肉目标检测的完整工程代码。内容围绕YOLOv3的多尺度预测与网格划分机制展开,涵盖数据预处理、Darknet模型构建、损失函数与优化器配置… · 2026/9/24 18:15:10
YOLO无人机目标检测数据集:VOC/COCO/YOLO标签格式转换与训练避坑实战 简介:面向目标检测开发者和无人机视觉学习者,这份YOLO无人机目标检测数据集围绕真实航拍场景构建,包含5000张高质量图片,场景丰富,经LabelImg精细标注,同步提供VOC、COCO、YOLO三种格式标签,分别… · 2026/9/24 18:15:04
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44