C++课后习题训练记录Day201

1.练习项目 :

问题描述

在一个遥远的国度里,有 n 个城市,它们被 n−1 条道路连接。这个国度的领袖小蓝和他的好友小桥决定要建立一个属于他们自己的国家。

但是,统治一个国家可不是件容易的事情。有很多的小偷和恐怖分子时刻准备着破坏国家的和平。经过小蓝和小桥深思熟虑后,他们得出一个结论:从每个城市出发,只要能够到达一个警察局,就可以确保国家的安全。

现在,这个国家里有 k 个警察局,分别位于 k 个不同的城市中。同时,这个国家的城市结构满足上述法律的要求。但是,小蓝认为 n−1 条道路实在是太多了,每条路都需要花费很多的维护费用,而这个国家正面临着财政紧缩的困境。因此,他希望能够关闭尽可能多的道路,同时又能确保国家的安全。

请你帮助小蓝找出能够关闭的最大道路数量。

输入格式

第一行包含两个整数 n,k,表示城市数量和警察局数量 (2≤n≤105,1≤k≤n)。

第二行包含 k 个整数 p1,...,pk,表示每个警察局所在的城市编号 (1≤pi≤n)。

接下来 n−1 行,每行包含两个整数 ui,vi,表示一条连接城市 ui​ 和 vi​ 的道路 (1≤ui,vi≤n,ui≠vi)。

保证这 n 个城市之间的道路可以保证任意两个城市之间都可以到达。

2.选择课程

在蓝桥云课中选择题库,选择题号3124并开始练习。

3.开始练习

(1)源码 :

#include <iostream>

using namespace std;

int main()

{

// 请在此输入您的代码

int n,k;

cin>>n>>k;

cout<<k-1;

//已有k个城市有警局,还有n-k个城市没有警局,即只需n-k条道路

//(n-1)-(n-k)=k-1;已有的减去需要的等于可去掉的

return 0;

}

(2)检验结果

对此代码进行检验,检验后无报错,运行此代码,运行结果正确。

(3)练习心得:

注意每段代码末尾的分号是否存在 ,如不存在则需即使补充;输入法 是否切换 为英语模式;语法是否错误。

相关推荐
Navigator_Z1 天前
LeetCode //C - 1252. Cells with Odd Values in a Matrix
c语言·算法·leetcode
语戚1 天前
力扣 1621. 大小为K的不重叠线段的数目:动态规划(Java 实现)
java·算法·leetcode·动态规划·力扣·dp
青山木1 天前
Hot 100 --- 最长有效括号
java·数据结构·算法·leetcode·动态规划
这料鬼有毒1 天前
二刷hot100-1143.最长公共子序列
算法·leetcode·动态规划
政企项目老覃1 天前
边缘 AI 推理部署:安防零售场景下的模型裁剪与端侧落地实践
人工智能·程序人生·算法·性能优化·vllm
I_belong_to_jesus1 天前
std::unique_ptr成员函数用法
c++
Tairitsu_H1 天前
[C++] 拷贝构造还是赋值重载?类默认成员函数细节详解
开发语言·c++·类和对象
GreenTea1 天前
发布 3 天登顶 HN:不生成一个字的模型 Jev,我把它的源码和黑料都扒了一遍
前端·后端·算法
汉克老师1 天前
GESP2026年9月认证C++四级( 第一部分选择题(1~7题)精讲
c++·gesp·小学生·学c++编程
geats人山人海1 天前
现代c++第二章 字符串
c++