- 博客(31)
- 收藏
- 关注
原创 纯纯的数学期望
文章目录简单D - Deceptive Dice中等较难简单D - Deceptive Dice传送门题意:有一个 n 面的骰子,有 k 次掷骰子的机会,问得到最大期望是多少做法:k = 1,最大期望 e 就是 1 到 n 的和除 n,e = (1 + n) * n / 2 / n。k = 2,当我掷骰子的点数小于 e,则就继续掷骰子,第二次继续掷骰子的期望是第一次的 e,然后相加更新得到 k = 2 时的 ek = 3,第三次掷骰子的期望是第二次的 e,相加更新得到 k = 3 时的 e
2022-05-25 20:44:13
211
原创 纯纯的构造
文章目录简单A - Almost Balanced Tree中等较难简单A - Almost Balanced Tree传送门题意:定义一棵权值平衡二叉树:节点的总权值是以它为根节点的子树的权值和,一棵二叉树是否权值平衡当且仅当其任意一个节点的左右儿子总权值差值不超过 1,没有儿子视为儿子节点的权值是 0。现在让你构造一棵权值平衡的二叉树,这棵树每一个点的权值只能是 1 或者 2,给定两个数 n 和 m,n 是 1 的数量,m 是 2 的数量,输出任意一种答案即可,不能构造时输出 -1。做法:这题
2022-05-20 19:22:53
276
原创 纯纯的最长路
文章目录简单C - Coolest Ski Route中等较难简单C - Coolest Ski Route传送门题意:给定一个有向图,n <= 1000,保证无环,问最长路长度多少做法:最长路可以用弗洛伊德求出,但是这题 n 太大无法求,所以退而求其次,可以用类似于 dijkstra 的做法去做,但是 dijkstra 保证了每个点入队只有一次,因为每次拿最短边更新其他点,但是如果求最长路就不能让每个点只入队一次,因为可能被其他点更新,所以 dijkstra 的时间复杂度无法求出,应该尽可
2022-05-20 18:37:27
202
原创 字符串哈希
文章目录简单字符串哈希I - Barbecue中等较难简单字符串哈希传送门题意:给定长度为 n 的字符串,有多次询问,每次询问给两个区间,问这两个区间的字串做法:模板题,字符串哈希的作用就是对每一段字符串赋予一个哈希值,方便 O(1) 比较区间字符串是否相同I - Barbecue传送门题意:给定一个长度为 n 的字符串,有多次询问,每次询问给一个区间,也就是一个子串,A 和 B 在博弈,每次操作可以从子串头或尾取删一个字符,删前或删后如果是回文,那么另一个人赢,A 先手,询问的是这个子串的
2022-05-14 21:40:37
232
原创 二分+思维
文章目录简单K - Video ReviewsL - Queries on a String中等较难简单K - Video Reviews传送门题意:给定 n 和长度为 n 的数组 a,编号 1 ~ n,每个数的意义是如果前面有 <= a[i] 个数提供了贡献,那么这个数也会提供贡献,否则不提供贡献。你有一种操作可以令 a[i] = 0,问:如果至少需要 m 个数提供贡献,问最少操作次数做法:越早使用操作次数对后面的数影响越大,越可能让得到的贡献越大,那么加入给定 x 个操作数,对数组从前往
2022-04-18 11:01:33
116
原创 纯纯的背包
文章目录简单A - Atomic Energy中等较难简单A - Atomic Energy传送门题意:给定 n 个原子,编号 1 ~ n,第 i 个原子的体积是 i 能量是 a[i],q 次询问,每次给一个体积为 k 的原子(k < 1e9),问这个原子分裂释放的能量最小是多少。分裂有以下规则:一、如果 k <= n,则直接释放 a[i] 能量二、如果 k > n,k 每次可以分裂成体积为 i 和 j 的两个原子,i + j = k做法:体积和能量,很像背包,也确实是背包
2022-04-13 17:11:48
85
原创 纯纯的容斥
文章目录简单G - Snake Rana中等较难简单G - Snake Rana传送门题意:有 n * m 的矩阵(n < 1e9, m < 1e9),有 k 个地雷(k <= 20),给出每个地雷的坐标,问有多少子矩阵没有地雷做法:n * m 的矩阵种子矩阵的数量是 C(2 , n + 1) * C(2 , m + 1) ——从 n + 1 条边和 m + 1 条边里各选两条用集合的角度看待,那么一个可以将整个矩阵分为没有炸弹的矩阵集合有1个炸弹的矩阵集合有2个炸弹的矩
2022-04-13 13:16:22
165
原创 线段树
文章目录简单中等F - Monkeying Around较难简单中等F - Monkeying Around传送门题意:有 n 个猴子坐在椅子上,编号 1 ~ n,有 m 个操作,每次操作时,编号为 x 的猴子会讲笑话,这个笑话的编号是 l,半径为 k 的猴子会听到这个笑话,如果他们没有听过这个笑话,他们会从椅子上摔下来大笑,如果听过这个笑话,他们就会回到座位上(原本在座位上的猴子还在座位上),问 m 次操作结束后还有几个猴子在椅子上做法:很显然,对于每个猴子来说,他是否在椅子上全看他最后一个听
2022-04-13 12:31:50
151
原创 DP + 记忆化搜索
文章目录简单中等J - Boxes Game较难简单中等J - Boxes Game传送门题意:有 n 个数字,两个人每次从两端取数字,取出的数字加到他们各自的总分,问他们分数相减的绝对值是多少?(两人都是按照最优策略取数)做法:较难...
2022-04-06 14:23:27
370
原创 二分图——染色法
文章目录简单J - Anti-merge中等较难简单J - Anti-merge传送门题意:有一个 n * m 的矩阵,可以对这个矩阵进行一些操作,先对每一列压缩矩阵,即同一列相同且相邻的元素可以被压缩成一个元素,然后再压缩每一行,即同一行相同且相邻的元素可以被压缩成一个元素,但是出题人不想要你压缩这个矩阵,你可以对元素加一个标签,如果元素相同相邻但是标签不同,那么就不能压缩,问你要加的标签的种类最小和数量最小的方案做法:将整个矩阵想象成一个图,相同的相邻元素有一条边相连,那么对于每个点来说就是让
2022-04-06 00:36:29
818
原创 纯纯的思维
文章目录简单C - Magical Rearrangement中等较难简单C - Magical Rearrangement传送门题意:给你 0 ~ 9 每个数字的数量,让你构造一个数字,数字必须符合以下规则:1、所有数字必须被用上2、不能有前导零3、相邻数字不能相同问构造的最小数字,无法构造输出 -1做法:设每个数字的数量输入到 a 数组里,数量总和为 n,k 为数量最多的数字,mx 为他的数量。首先思考 -1 的情况,n == 0 或者 a[0] > n / 2 或者 mx &
2022-04-06 00:18:40
621
原创 最短路方案数
文章目录简单最短路计数中等较难简单最短路计数传送门题意:给定图,边权为1,问最短路方案数做法:板子题,假设更新 i 到 j,那么从起始点到 j 的方案数 cnt[j] = cnt[j] + cnt[i]中等较难
2022-04-05 23:33:35
105
原创 思维+尺取
文章目录简单题目中等较难简单题目传送门题意:开始时输入5个变量,n,m,k,x,s,主人公有个英雄,要施展n次魔法,初始情况下每次使用魔法要花费x秒,但现在他有s点魔力,他可以用魔力做两种操作。第一种是最多使用一次法术,他有m种法术,每种法术都会有一个魔力消耗值bi和一个值ai,在使用了bi的魔力后,每次施展魔法的时间会全变成ai。第二种是求助最多一个英雄,他有k个求助对象,求助时要消耗di点魔力,可以不用时间就施展ci次魔法。问主人公施展n次魔法需要的最少的时间是多少做法:这两种操作都是按照消耗
2022-04-04 20:43:09
86
原创 拓扑排序+dijkstra
文章目录简单中等题目较难简单中等题目传送门题意:给定一张图,图中存在两种边,分别是道路(无向)和航线(有向),题目保证若 A -> B 有条航线,则不会存在任何可以使 B -> A 的航线或者道路,给定起始点,问到其他城市的最短路做法:题意读起来有些抽象,从题目的保证可以看出,航线是不会存在环的,若只看道路,那么可以将图分为若干个连通块,这些连通块之间,要么是由航线连接,要么永不连接,若将连通块看作一个点,那么这个由航线组成的“图”一定是拓扑图,那么只要根据拓扑序对着每个连通块跑di
2022-04-04 11:49:22
276
原创 二分 + 图论
文章目录简单中等通信线路较难简单中等通信线路传送门题意:给定一个无向图,可以指定从 1 到 n 的 k 条路径,使这些路径免费,输出路径上最小的最大边权做法:二分答案,用双端队列求最短路如果边权 > mid 就将边权改为 1,否则就改为 0,这样跑出来的 dijkstra 的值是这条路径上 > mid 的路径条数,这个条数如果 <= k,就将区间向右缩,否则向左缩双端队列:用于处理边权为 0 和 1 的图较难...
2022-04-04 11:18:25
84
原创 纯纯的搜索
文章目录简单题目中等较难简单题目传送门题意:给定一张图,求一个字典序最小的环做法:pta的题一般都是先dfs爆搜,然后再剪枝,因为时环,所以字典序最小的一定是从 1 号点出发,所以dfs只搜 1 号点。这题剪枝比较讲究,在dfs的过程中,对于每一种还未搜到底的方案,在还未标记的点上查找是否有能回到 1 的点,如果没有,直接剪枝。中等较难......
2022-04-04 09:35:13
171
原创 DP + 组合数
文章目录简单题目B - Flipping Game中等较难简单题目B - Flipping Game传送门题意:有 n 个灯泡,每个灯泡都只有两种状态,开或者不开,也就是1或0,给定灯泡的初始状态和最终的状态,给定 k 轮操作,每一轮操作都需要改变 m 个不同灯泡的状态,然后问从初始状态到最终状态的方案数做法:当初始状态与最终状态不同时,说明需要操作奇数次,相同时说明需要操作偶数次。二维DP,i 代表第 i 轮,j 代表需要更改的灯泡数量,假设有 x 个灯泡和最终状态不同,也就是这 x 个灯泡需
2022-04-04 08:43:47
160
原创 优先队列_
文章目录简单H - Tokens on the Segments中等较难简单H - Tokens on the Segments传送门题意:二维坐标轴上有 n 个平行于 x 轴的线段,若想要每个线段得到标记,只需要标记线段上的一个整数端点即可,但是 x 坐标相同的点只能标记一个,问最多有几条线段被标记做法:从左往右扫,如果当前 x 坐标没有被标记,那么标记当前点,如果已经被标记了,那就把让左端点 ++ 后在和右端点一起放入队列中中等较难...
2022-04-03 10:42:36
106
原创 BFS最短路
文章目录简单最优乘车中等较难简单最优乘车传送门题意:给定 m 个公交车路线,每条路线上又若干个车站,共 n 个车站,求起点到终点的最少换乘次数做法:暴力建边,读入公交路线时将其中每一个战点与其他站点连边,这就相当于边权为 1 的图,然后求一遍最短路中等较难...
2022-04-02 23:15:38
273
原创 Dijkstra + DFS
文章目录简单题目中等较难简单题目传送门题意:从起始点按任意顺序到 k 个点,问这 k - 1 条边的最短总和做法:对起始点和k个点都跑一遍dijkstra,用二维数组记录第 i 个点到其他所有点的最短路,用DFS跑全排列求出最短路径和(k 必须很小)中等较难...
2022-04-02 23:15:04
83
原创 Dijkstra板子题
文章目录简单热浪信使香甜的黄油最小花费中等昂贵的聘礼较难简单热浪传送门题意:带权无向图,n 个点 m 条边,求两点间距离,数据不会爆int做法:dijkstra跑一边即可信使传送门题意:求起始点到其他点最短距离中的最长距离,无法到达的不算做法:dijkstra跑后求max香甜的黄油传送门题意:求一个点到其他点的距离和最短做法:数据量小,对每一个点跑dijkstra求和取min最小花费传送门题意:两人转账会扣除一定比例的手续费,问终点想要得到100元钱需要起点拿出多少钱做法:
2022-04-02 23:14:30
273
原创 优先队列+set
文章目录简单F - Flight Collision中等较难简单F - Flight Collision传送门题意:在 x 轴上有 n 个无人机,他们都以一定速度移动,两个无人机一旦撞上就会坠落,问剩几个无人机不会坠落做法:优先队列存结构体,结构体存一对飞机的编号和这对飞机相撞的时间,优先队列按照相撞时间从小到大排序。优先队列内维护的内容是即将相撞的一对飞机编号,永远不会撞上的不进优先队列。对于一对一定会撞上的无人机,它们的坠落将会使得它们左右的第一架活着的无人机变成相邻关系,而且这对无人机也有可
2022-04-02 23:13:41
263
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人