首页 > 代码库 > Codeforces Round #375 (Div. 2) A B C D F

Codeforces Round #375 (Div. 2) A B C D F

A 数轴上有三个人要到一个点去过年 使三个人走路距离的和最小  让两边的人都走到中间那个点即可 

B 给出一个字符串 其中有_ ( ) 三种字符和英文字母 连续的英文字母是一个单词 括号对中不会套括号对 求 括号外最长的单词长度 括号内有多少单词 

维护一个bool变量表示当前单词在不在括号内 res表示当前单词的长度 可见 _() 都是分隔符

C 给出一个节目表 其中有n个曲目 每一个ai 代表这个曲目由ai乐队演奏 但是某人只喜欢标号是1-m的乐队 现在他可以对每个节目的乐队进行更换 问 最少更换多少次之后 在这个节目单上 他喜欢的1-m个乐队中 演奏曲目最少的乐队 演奏曲目能达到最高 

可以看出 n/m 就是能达到的最大值 优先级最高 由于我们只要求最小值 所以 对于每一位进行check 如果这个位置是不喜欢的乐队 就找是否还有喜欢的乐队没有达到最低限度 如果这个位置是喜欢的 就看这个乐队是否超过了最低限度 然后决定是否枚举其他喜欢的乐队进行替换

有个trick是 节目单上允许不喜欢的乐队出现

D 给出一个地图 上面.表示水 *表示地 相连的.是湖泊 现在要求把一些湖泊填满 使剩余湖泊为k个 地图被大海包围 所以 在地图边缘的湖泊不能被填满(即使蓝翔一直推行“东部挖坑 西部填海”) 输出地图

先把地图的边缘扫一遍 把这些和大海相连的湖泊标记 再遍历地图 把所有没有被标记的.进行bfs 标号并推进数组 最后sort数组 选择一定量的最小湖泊填了 记录标号 对其进行标记 在输出原地图的时候判断这个点是否被标记决定输出什么

F 给出一个图 给定st两个点 再给出ds dt 表示st两个点分别能具有的最大度数 给这个图求一个生成树 使st的度数不超过dsdt 

将除了st之外的所有点求连通分量 在这个的进行途中 如果bfs到了st 就记录下这个连通分量和st的关系 最后会得出一群连通分量和st的关系

5种关系

st可以直接相连

一个联通分量可以连s

      可以连t

      可以连s又可以连t

      st都不可以

经过思考 可以发现 如果存在1 4 当然选择4 如果没有4 就退而求1  有5 当然不可以 23最后考虑 能连就连

最后checkddsddt和dsdt之间的关系 决定输出不可行或者答案

 

我想和你永远在一起 

Codeforces Round #375 (Div. 2) A B C D F