摘要:
A. PENTA KILL! 模拟 题意:给定一个击杀序列,死亡不影响连杀,问是否有人完成五杀 分析:模拟,将每个选手的名字进行哈希,将属于每一个人的击杀序列处理出来,对每个人进行枚举判断即可 ac代码 #include <bits/stdc++.h> #define ios ios::sync_w 阅读全文
摘要:
A . Nucleic Acid Test 二分 + floyd预处理 + 并查集判图联通 题意 : 城市中有n个建筑,m条双向道路,n个点中有 k 个是核酸检测点,给定核酸有效时间,问从某一个核酸点经过所有城市并回到某一个核酸点的最小速度 思路 :二分答案,先用floyd预处理出各点对的最短路程, 阅读全文
摘要:
思想 树链剖分用于将树分割成若干条链的形式,以维护树上路径的信息。 具体来说,将整棵树剖分为若干条链,使它组合成线性结构,然后用其他的数据结构维护信息。 重链剖分 原理 首先先定义一些概念 | 概念 | 定义 | | | | | 重儿子 | 每个点的子树中,子树的节点数和最大的子节点 | | 轻儿子 阅读全文
摘要:
A. Mainak and Array 题意 :给定一个数组,要求选定一个区间,并将该区间的数循环右推k个单位,问最大的$a_n - a_1$ 的值 分析:因为要使$a_n - a_1$最大,那就要让选定的区间至少包含一个端点,考虑三种情况:只含一个端点的(1或n),两个区间都包含,枚举一下 ac 阅读全文
摘要:
A - Saturday 题意 :输入字符串 代表 周一至周五的某一天,输出这一天离周六还有多少天 分析 :映射一下,直接输入输出 ac代码: #include <iostream> #include <algorithm> #include <cstring> #include <cstdio> 阅读全文
摘要:
B. Dragon slayer(二进制枚举 + bfs) 题意:给定一个n * m的网格,视格子中间为点,格线为墙,指定x堵墙(x <= 15),穿过一堵墙耗费一体力,问从起点到终点的最小体力为多少 分析: 注意到墙的数量很小,所以可以考虑二进制枚举哪些墙被拆,然后bfs 判断可达性,这题难点在于 阅读全文
摘要:
A. Villages: Landlines(区间合并) 题意 :给定n - 1个建筑和一个发电站,分布在一个一维的数轴上,这n - 1个建筑都有各自的电力接受范围,不连通的建筑可以通过电相连,问使每个建筑都通上电所需的最小电线长度 思路 :将每个建筑看成区间,然后问题就转化为区间贪心问题,将断开的 阅读全文
摘要:
E. Qpwoeirut and Vertices 题意 :给定一个联通的无向图,n个点,m条边,进行q次询问,每次询问给出 $l$ 和 $r$ ,回答,仅用编号前 $k$ 条边,就可以使编号在 $l$ 和 $r$ 之间内的所有点联通的 $k$ 的最小值 分析 :根据题目规定,我们定义给出边的编号即 阅读全文
摘要:
E. Mark and Professor Koro 题意 :有一个数列a,定义以下操作 : 找到两个相同的数字 $x$,从该数列中删除这两个数字,并将 $x + 1$ 添加进来 进行多次询问,每次给出两个数字 $x,l$,将 $a_x$ 替换为 $l$ ,问 我们经过任意次的操作后能够得到的最大的 阅读全文
摘要:
G. Good Key, Bad Key 题意 :有n个宝箱$(0 \le n \le 1e5)$,第i个宝箱有$a_i$个金币,每次可以选择使用两种钥匙开箱 1.好🔑 花费k个金币 2.坏🔑 不花金币但会使以后的金币都减半 要求我们必须按顺序开箱,问最后可得到最多的金币个数为多少 考虑dp 注 阅读全文