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)练习心得:

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

相关推荐
fpcc5 小时前
c++编程实践—堆和栈越界调试
c++
yi0115 小时前
LeetCode 219:存在重复元素 II——哈希表记录“最近一次出现的位置”
数据结构·人工智能·笔记·python·算法·leetcode·哈希表
weiabc6 小时前
MSYS2 UCRT64 + g++ C++ 中文输出乱码 完整全过程
c++
灯澜忆梦7 小时前
【面向对象编程C++】| 基础语法
java·c++·算法
小蒋观天下7 小时前
专项方案:大场景港口AI安防、多干扰环境下的算法调优与落地实操
人工智能·深度学习·算法·安全·机器学习·计算机视觉·ai大模型
Evand J8 小时前
【电机滤波例程5】渐消因子自适应扩展卡尔曼滤波(EKF),MATLAB。PMSM负载突变下的状态估计。附下载链接
算法·matlab
H.莓飛8 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
好想像大佬一样能够ak所有8 小时前
Leetcode35.搜索插入位置
数据结构·算法·leetcode
aqiu1111118 小时前
【C++算法打怪专栏】LeetCode 165. 比较版本号(双指针与字符串流法)
c++·算法·leetcode
黄金龙PLUS9 小时前
如何基于置换算法来设计对称加密算法
算法·网络安全·密码学·哈希算法·同态加密