- 博客(74)
- 收藏
- 关注
原创 P2045 方格取数加强版
给定一个n×n的矩阵,从左上角出发,可以往右或者往下走,每到达一个方格,就取走上面的数(取过后格子上的数会清零),一共要走k次,求取到的数之和最大为多少?
2024-08-05 21:15:39 815
原创 P10289 [GESP样题 八级] 小杨的旅游
给定一棵n个点的树,每条边权值均为1,树上有k个关键点,关键点们在0的时间内相互可达,q次询问,求s→t的最短路。
2024-08-02 18:29:28 1189
原创 P6192 【模板】最小斯坦纳树
给定一张n点m边的无向连通图,其中有k个点是关键点。求图的一个子图,满足包含了所有k个关键点,使得所包含的边集的权值和最小,求这个最小值。
2024-08-01 21:23:23 644
原创 P3037 [USACO11DEC] Simplifying the Farm G
给定一张n点m边的无向图,求它的最小生成树,以及最小生成树的数量,具有相同权值的边最多3条。
2024-08-01 20:42:05 441
原创 洛谷 P1730 最小密度路径
定义一条路径的密度为:路径上边的权值和除以边的数量.给定一张n点m边的有向图,q次询问,每次询问给定st,求s→t的路径中密度最小的一条。
2024-07-31 21:50:18 951
原创 洛谷 P4802 [CCO2015] 路短最
给定一张n点m边的有向图(可能有环),点的下标从0开始,求0到n−1的最长路(不允许重复走点和边)。2≤n≤18。
2024-07-30 21:38:05 297
原创 P1345 [USACO5.4] 奶牛的电信Telecowmunication
给定一张n点m边的无向图,求最少要删去几个点,才能使c1与c2不连通?
2024-07-30 21:12:58 358
原创 洛谷 P1948 [USACO08JAN] Telephone Lines S
给定一张n点m边的无向图,求一条1→n的路径,使得路径上第k1长的边最短。
2024-07-30 20:29:05 459
原创 P3110 [USACO14DEC] Piggy Back S
有一张n点m边的无向图,Alice 要从1走到n,Bob 要从2走到n。Alice 走一条边需要花费B,Bob 走一条边需要花费E,当他们一起走时,走一条边需要花费P。求他们总花费的最小值。
2024-07-10 21:41:19 629
原创 洛谷P2176 [USACO11DEC] RoadBlock S / [USACO14FEB]Roadblock G/S
给定一张n点m边的无向图,请选择一条边,将其边权加倍,最多可使最短路增长多少?
2024-07-09 21:38:34 592
原创 洛谷 P3008 [USACO11JAN] Roads and Planes G
有一张n点m1m2边的无向图,其中m1条为无向边,另外m2条为有向边, 无向边的边权可以为负。求s到其他每个点的最短路。
2024-07-07 17:31:16 436
原创 洛谷 P1078 [NOIP2012 普及组] 文化之旅
有一个n点m边的无向图,每个点都有一个颜色(可能重复),还给定了一个矩阵A。如果经过了颜色为i的点,那就不能再经过颜色为i的点以及满足Aij1的颜色为j的点。求s→t的最短路,不保证AijAji。
2024-07-03 19:47:25 931
原创 洛谷 P3393 逃离僵尸岛
有一张n点m边的无向图,点有点权,同时给定一个集合TT中的点都不允许经过。对于一个点i,如果它与T中的任意一个点相距边数≤S条,那么点i的权值为q,否则为p。求1→n的最短路。(点n的权值不计算在内)
2024-07-03 13:30:11 550
原创 AtCoder Beginner Contest 355
发现直接求相交的对数不好想,但正难则反,我们可以求出不相交的区间对数。问执行第几个操作后,有一行或一列或对角线的格子全部被涂黑。我们可以记录每行、每列、主次对角线中被涂黑的格子数量。,每次操作后检查该格子对应的行列对角线的黑格子数是否。开始,这样时间复杂度就可以优化至 $O(n) $。但稍加分析可以发现,上述算法的时间复杂度仍为。,问两两相交的区间对数,交点重叠也算入。次操作,每次操作涂黑一个指定的格子。如果暴力判断,那么总时间复杂度是。的网格,初始全白,有。我们可以用双指针,将。,我们需要进一步优化。
2024-06-10 15:35:10 695
原创 AtCoder Educational DP Contest
每天只能进行一个活动,且相邻两天不能做相同的活动。现在要挑选一些物品装入袋子里,求选择的物品的最大总价值。现在要挑选一些物品装入袋子里,求选择的物品的最大总价值。很大,直接套用01背包计算,时间和空间肯定一定炸。给定两个字符串,输出它们的任意一个最长公共子序列。经典01背包问题,按照01背包的解法做即可。只能从另外两个状态中的最大值转移过来。由于相邻两天不能做相同的活动,所以。的最小重量,这样就不会炸了。很小,我们可以转换思路,设。,就可以递归输出方案。号石头时的最小代价。号石头时的最小代价。
2024-04-16 22:04:53 709
原创 洛谷 P1017 [NOIP2000 提高组] 进制转换
我们要求取余的结果必须是正整数,但是,两个负数取余会得到负数,需要特殊处理。正进制的转换很简单,但是负进制数不一样,体现在取余操作上。
2024-04-06 17:55:50 291
原创 AtCoder Beginner Contest 347
的前缀和,当集合中的一个数被移除时,我们就计算它的贡献(前缀和相减)。做出的贡献是一个连续的操作区间,贡献值就是这个操作区间的。先排序,然后枚举左端点,看与最右边的点的距离是否超过。问题被转化为:数轴上有一些点,问能否有一个长度为。把所有子串丢进集合里,最后输出集合的大小。给定一些计划,输出它们是否都安排在节假日。操作完后,对还在集合里的数结算贡献即可。,输出它不同的子串个数(不包括空串)。在集合中时,它在被移出集合之前,都会对。最重要的是星期几,因此所有。次操作,每次操作给定一个。,解下列方程组,要求。
2024-03-31 16:08:59 650
原创 AtCoder Beginner Contest 335
如果我们把每个部分的坐标按顺序放在一个队列里,队尾是头部坐标,队头是尾部坐标,每次移动相当于一次出队和一次入队。,要求每个数字仅使用一次,且相邻数字的格子相邻,且正中间的格子不能是数字,而是。每移动一次,只有头部到了新的坐标,其他部分的坐标都变成前一个。的情况下,该边一定是无效的,所以我们只往图中添加。的边,注意这是一个无向图,所以需要判断正反两次。二维网格,贪吃蛇,移动,进行q次操作,分两种。的路径中,出现的不同颜色的个数最多是多少。,最后恰好到正中间,因此能恰好填满。,直接三层循环即可。
2024-03-28 21:36:09 509
原创 AtCoder Beginner Contest 337
你需要找最少的朋友,然后给他们一些果汁喝。一瓶果汁可以给多个朋友喝,一个朋友也可以喝多瓶果汁。瓶果汁,其中有一瓶变质了,喝了变质的果汁会拉肚子,但你不知道哪瓶变质了。场比赛,给出每场比赛中高桥队和青木队的积分,问最后谁总分更高或平局。第二天,朋友们会告诉你他们是否不舒服,你需要据此找到变质的果汁。个朋友喝,如果它第二天肚子疼了,说明。问最少进行的操作数,使得网格有连续。个格子的左端点 ,然后往右的。个格子里,不能有x,然后对。的二进制下,哪些数位是1。时,如果不为-1,则令。的二维网格,格子上有。
2024-03-27 22:13:35 674
原创 AtCoder Beginner Contest 346
的代价,通过前缀代价+后缀代价,就可以得到当前枚举的情况的代价。定义一个好的字符串,当且仅当只有一个相邻位置上的数字是相同的。我们枚举相邻数字相同的位置,然后计算变成。问将字符串变成好的字符串的最小代价。给定一些数,输出它们两两之间的乘积。个字符,看看是否满足上述需求即可。枚举子串的起点,只有12种情况。对于每一个可能的起点,统计其后的。个,我们可以枚举所有的情况。这两种情况的代价,取最小值。,事先计算所有前缀和后缀变成。,问是否由一个子串,其有。中所有数的和,但要排除。去重,或者使用set。
2024-03-24 18:47:03 436
原创 AtCoder Beginner Contest 343
虽然分数的范围很大,但最多只有20万名选手,所以不同的分数最多只有20万个。可以开一个map,键为分数,值为该分数出现的次数。,因为所有选手最初都是0分。考察对邻接矩阵的理解。个,因此枚举判断即可。
2024-03-19 21:39:10 329
原创 AtCoder Beginner Contest 344
的,我们还要设一个map,键为列表中的数,值为对应项的迭代器。的最少选择数,如果当前次数比它还要大,就不用再搜索下去。注意list的插入是在给定迭代器的前面插入。的所有情况,询问时直接在表中查找即可。数据范围不大,可设一个哈希表存储。使用链表解决,为了方便,可以用。个背包,字符串长度为。
2024-03-18 21:39:59 152
原创 AtCoder Beginner Contest 338
把圆拉直,那么弦就会形成若干个区间,显然若两个区间包含或没有交点,则图上这两条弦就没有相交。利用桶排序记录下每个字符出现的次数,再找出出现次数最多的字母。使用类似括号匹配的做法即可,如果可以匹配,那弦之间就没有交点。现问删去一条边,求依次访问这些点的距离(边数和)的最小值。中出现最多次的字母,如果有多个,输出字典序最靠前的那个。的第一个字符是大写字母,其他所有字符都是小写字母。(可以经过要访问的点以外的点)条弦,判断弦之间是否有交点。路径上的边都可以删,所以。路径上的边都可以删,所以。
2024-03-17 20:37:58 408
原创 AtCoder Beginner Contest 339
对于每个状态,尝试让两个玩家移动到上下左右四个位置,如果有一个玩家移动后出界或者是移动到障碍物上,那就不动它。二维网格,上下左右相连,左上原点。初始全部为白色,位于原点,面朝上。从两个玩家起始的位置开始搜索,首先把起始状态丢入队列。在看一个新的状态时,如果没有访问过,那就扔进队列。次操作,每次操作,将当前格子颜色黑白反转,然后。所在的位置,输出它后面的所有字符(不包含。范围内的数字作为节点,记录每个节点的dp值。,再计算这些不等式左边的结果,取最小值。的迷宫,有一些障碍物,有两人。
2024-02-04 18:38:36 678
原创 信息学奥赛一本通 1455:【例题1】Oulipo
数据范围比较大,直接枚举会爆掉,需要字符串哈希,哈希值相同则两个字符串相同。这里只要开一个h就行,s1的哈希值用一个变量递推就可以。
2023-12-15 22:25:41 576
原创 洛谷 P1066 [NOIP2006 提高组] 2^k进制数
不一定是0,所以首位转二进制后可能并不是长度为k的完整的一段,需要特殊考虑。首先看首位填0的情况,剩下的每一位都可以选择。种数中的一个,由于数字各个位是递增的。
2023-11-25 13:06:31 446 1
原创 P1019 [NOIP2000 提高组] 单词接龙
设数组f[i][j]表示第i个单词和第j个单词的重合长度,我们预处理出f数组,找出符合开头的单词,dfs即可。(纠正一下:题目中的包含是指串a和串b接龙后长度没有改,比如babyb和byb可以接龙。我们可以枚举重合长度从1到max(lena,lenb)-1(不能包含),截取子串来判断。首先解决重合长度问题。
2023-11-25 12:48:01 405
原创 信息学奥赛一本通 1642:【例 2】Fibonacci 第 n 项
注意:矩阵乘法不满足交换律,不能搞反掉顺序!看似简单,但一看数据范围就知道不容易。推出来后直接计算即可。
2023-10-21 21:39:16 218
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人