cf
文章平均质量分 64
golemon.
这个作者很懒,什么都没留下…
展开
-
逆向思考 C. Fence Painting
思路:逆序考虑,因为每一块木板都是被最后一次粉刷所决定的。最后再检验一下,是否可行即可。原创 2023-12-13 21:10:20 · 498 阅读 · 0 评论 -
树状数组 / pbds解法 E2. Array Optimization by Deque
前面的数量和后面的数量(大于/小于)。如果前面的数量小,就插前面,否则插入后面,将答案进行更新。可以发现对于每一次插入a值,影响插入的只跟已经放入的大于a或小于a的数量有关。需要一个数据结构,满足:动态修改、查询。可以发现树状数组可以做这些操作,不过。发现核心就是求排名,平衡树即可。较大,开不下数组,可以离散化。在离散化后,本题转为:查询。原创 2023-11-27 00:05:45 · 214 阅读 · 0 评论 -
贪心 D. Least Cost Bracket Sequence
全都先转为同一种,记录总花销,之后根据情况替换为另一个,这样虽然也是动态的,但是要维护的状态少了很多。现在问能否让该字符串转为合法的括号匹配,如果可以找到最小花费并输出转为的括号匹配。,并将计数值和字符串状态进行更新。贪心的时候需要找到中间值。数量一定小于等于左边。用括号匹配的类似操作进行计数,根据计数值进行贪心的更改:将原来。,是动态的,处理起来麻烦。进行累加计数,对于其他的,如果是。题目大意:给一个只包含。,对于中间态而言,左边。原创 2023-11-26 01:25:40 · 176 阅读 · 0 评论 -
搜索 C. Tic-tac-toe
思路:搜索,判断合法性。从起始态用搜索进行模拟,这样可以避免后面判断合法性这一繁琐的步骤。用一个map进行映射当前态及对应的结果。剪枝:如果当前字符串已经被搜索过,则直接跳过去。原创 2023-11-26 00:21:22 · 178 阅读 · 0 评论 -
枚举 B. Lorry
我们可以将物品按其体积分为两类,分别表示体积为1的物品和体积为2的物品。之后对于相同体积的物品来说,我们优先考虑其。刚开始写的时候,发现定义比较麻烦,就用了map进行映射,发现要处理边界问题,还不如上面简介呢(很大,用01背包一定不行,01背包优化的事件复杂度是。,所以要对物品进行排序。之后枚举物品体积为1的数量。要求输出价值和最大,且依次输出所选物品的编号。的条件下,得到的最大值,不断的进行更新即可。个物品,之后每行依次是体积和价值,其中。,得到在物品体积为1的数量。题目大意:给物品数量。原创 2023-11-25 23:03:05 · 500 阅读 · 0 评论 -
容斥 C. Strange Function改编题
赛时对这题容斥没有找到切入点。这个容斥处理极具有思维性,还是需要多做思维题!参考:Codeforces] number theory (R1600) Part.11 - 知乎 (zhihu.com)原创 2023-11-20 00:42:30 · 230 阅读 · 1 评论 -
离线处理 树状数组 G. Unusual Entertainment
内的值在以x为根的子树内的个数,通过判断这两个区间的值是否相等进而可以得到是否以x为根的子树在排列。题目大意:给一个以1为根的有根树,和一个排列p,q次询问。,问在以x为根的子树内是否存在一个节点在排列。思路:子树节点处理是dfs序。内是否有值在以x为根的子树内存在。原创 2023-11-18 19:20:18 · 231 阅读 · 0 评论 -
01背包 D. Make Them Equal
看b数组的大小,b数组元素是小于1000的正整数。从1到bi如果可以,那么最多是大概10次的,因为是指数递增的,例如:1 -> 2 -> 4 -> 8 -> 16 -> 32 -> 64 -> 128 -> 256 -> 512 -> 1024。对于每个ai到bi的这个操作是互不影响的,同时ai操作一下但是不等于bi对答案没有贡献的,那么就可以把ai到bi的次数预处理出来,之后01背包。,时间上不够,但是根据之前的发现,最多不超过11、12次就可以,因为k最多是。,现在时间复杂度是可以过这题的。原创 2023-11-15 21:32:39 · 80 阅读 · 0 评论 -
D. Jumping on Walls bfs
这题的思路就是:用一个队列存入每次的当前层数、水位层数和在左边还是在右边 这三个变量。之后的处理跟其他bfs没有太大区别,判断超界,当前位置小于水位位置就continue,根据在左墙壁或者在右墙壁进行判断即可。题目大意:有一个两个垂直的平行墙壁组成的一个峡谷。一个人初始是在左边墙壁第一层。同时,初始时在第0层有水,他每次执行完以上任意一个操作后,水位会上升一层。这题是一个显然的搜索,用dfs或者bfs都可以实现。如果dfs和bfs都可以实现,用bfs会更好(这题是一个游戏背景,可能描述的不够清晰,下面是。原创 2023-11-14 15:47:38 · 77 阅读 · 0 评论 -
拆位线段树 E. XOR on Segment
发现数组初始值最多是1e6,有不到25位,可以知道异或最大值是这些位数全是1的情况。区间求和,区间异或的操作跟线段树的区间求和、区间相见相似,考虑用线段树。我们开23个线段树表示每一位的情况,根据位运算求出每一位的贡献即可。发现可以对每一位进行运算就和。原创 2023-11-14 02:38:08 · 379 阅读 · 0 评论 -
离线处理 + dfs序 + 区间修改 + 单点查询
cfdiv2 #907场的F是牛客原题,过的很多,作为数据结构手竟然没有做过&据说很典,实在是太差劲了,于是第二天就来做这道题。牛客:华华和月月种树 (nowcoder.com)cf:Problem - F - Codeforces牛客题意描述(cf的差不多):有个操作:这一题由于是动态的,不能一遍得到,但是又不能每次加点后来个build。但是发现求的是第个节点的权值,根据dfs序的性质,我们可以求出最终态的dfs序。由于每个节点都是其中一个已经存在的节点的儿子节点,所以用终态dfs序建好线段树后,在遍历次原创 2023-10-31 16:50:35 · 98 阅读 · 0 评论 -
2023年中国大学生程序设计竞赛女生专场
我是这样模拟的:Apg先攻击Bpg,之后A攻击完后换其他的Apg。如果Bpg还有Hp就攻击那个新的Apg,否则Bpg换后面的攻击Apg。到Bpg攻击时,攻击的是队列中的下一个,而不是那个攻击Bpg的PG。但是多个这个填充在给定条件中如果成立,则所有形如那样的序列分配都是合理的。很像之前做过的拓扑序题,找一个满足条件的一个序列。模拟 + 栈,根据题意进行模拟,注意移动时要把它上面的一起进行移动。之后就是模拟,使用技能攻击高的,如果有多个攻击高的,优先使用非终极技能。后面比前面的大,一定用到了前面的贡献,原创 2023-10-29 11:28:39 · 292 阅读 · 0 评论 -
D - New Year‘s Problem
题目大意:m个商店,n个朋友,要向朋友送礼物,限制是只能在n-1个商店内为n个朋友选择礼物。每个礼物对不同的朋友有不同的开心值。矩阵M[i, j]表示第i个商店对第j个朋友的开心值(如果选的话。现在要求最大的每个朋友的最小开心值。解题思路:最小值最大,二分答案,二分开心值。如果进行check?根据以上进行即可。原创 2023-10-27 00:31:36 · 98 阅读 · 0 评论 -
N. Number Reduction
发现如果是无前导0最小数那么在保证删除k个数时第1位是最小的,第二位一定是相对最小的,且答案第一位和第二位在原位置的间隔是小于等于还可以删除的位数的。位每一个都是优先选小的,如果不能再选较大值(对于首位比较特殊,不能出现前导零,因此首位从1开始),可以从第1位开始进行枚举0到9将。每一次选完后,这一个数前面可能还有没有选的,但是由于已经选过该位,再选前面的会导致答案变大,因此不要。和还能删除的位进行更新,退出循环到下一位进行判断即可。可以用10个队列存入每一个数的下标,用一个变量。因此,对于原数字长度位。原创 2023-10-04 21:43:31 · 194 阅读 · 0 评论 -
cf 解题报告 01
题意:给你n个点,其整数坐标为x1xn,它们位于一条数线上。对于某个整数s,我们构建线段[sx1], [sx2],,[sxn注意,如果是s,那么线段看起来就像[xis线段[ab] 覆盖了所有的整数点aa1a2b。我们把点p的幂定义为与坐标p的点相交的线段数,记为fp。你的任务是计算每个s∈x1xn的p1∑109fp,即从1到109所有整数点的fp。原创 2023-10-03 00:04:01 · 232 阅读 · 0 评论 -
G. Path Prefixes 树上二分
思路:从1到i的这个一定是一条链,可以用dfs,求出1到i之间的所有a数组和b数组前缀和。让求的是最大b前缀,发现a和b都是正的,对于找最大不大于A的,这具有单调性,最小值最大,可以二分答案。因此,本题就是dfs时二分答案即可。问题描述:以1为根的树,节点编号从到n。每条边有两个权重a和b。令从1到i(i >= 2)的路径中,A为ai前缀和。求1到i的最长b前缀和不大于A。原创 2023-09-24 00:19:45 · 133 阅读 · 0 评论 -
C. Tea Tasting
第一个数组a表示第i杯茶有ai毫升,第二个数组b表示,第i个人品尝茶的毫升ai。之和大于等于ai,这时第j个茶就为0,不能再被k后面的人喝了。所以,朴素算法就是,找第j个茶第一个k,从j到k之间的人下标进行++。如果先求出b数组前缀和pre,对于第j个而言,它的贡献是j到k,那么就是二分找在pre数组中大于。的,所以找的一个前缀和范围就是在j到k之间的和,再将j到k之间进行++,此时可以用差分进行优化。杯茶bi毫升,之后ai减少bi,如果ai不足bi则ai减到0,第i个人喝了。,为什么是这个式子呢,因为。原创 2023-09-23 23:16:20 · 109 阅读 · 0 评论 -
G. Vlad and the Mountains 离线并查集
(26 封私信 / 13 条消息) Codeforces Round 888 (Div. 3) - 搜索结果 - 知乎 (zhihu.com)](https://www.zhihu.com/search?进行排序后,插入的一定是当前的,对前面的没有影响。表示起点、终点、初始能量,在移动过程中能量不能小于0,为是否可以从s走到t。问题描述:n个点,m条边,点权为h,从i到j要消耗。的放入并查集中(因为是一定可以的,对qry的。的值的话,可以形成一个折线图,总的花费是。就一定是可以走到的,即。原创 2023-09-22 22:37:48 · 163 阅读 · 0 评论 -
E. Round Dance
因为1的一个相邻点被连了,2的一个相邻点被连了,但是1和2都还有另一个点没有被连上。怎么找环呢,最开始是写了个基环树,发现两个点的环需要特判,可能还有其他情况。建双边,对边去重,度为1的一定可以是链,度为2的一定是环。发现它除了2个点的环特殊外,其他的一定要么是环要么是链,不会有其他的。像下面这个图,题目要求一定是成环的且没有其他杂边,但是这个有一个咋边,经过手推发现这个是不合法的。找到环后,再判断是否是长度为2的环就行,长度为2的环可以当作链。,求可以形成的最少的环和形成最多的环数量。原创 2023-09-21 14:55:50 · 84 阅读 · 0 评论 -
D. Boris and His Amazing Haircut
发现此时具有单调栈性质:通过从0到n-1进行遍历b数组,先将栈中小于bi的出栈,之后判断是否为空或者已经存在栈中(sk.top() == bi),如果为空或者bi不在栈中,入栈,表示一定需要这个。问题描述:剪发,将数组a减为数组b,有m个剪刀,每个剪刀只可以用一次且可以在任意区间内剪发,将长度大于mi的减为mi。现在有m数组,数组元素是第i个剪刀可以剪到mi,问能否将a减为b。在减的时候会将这个a数组渐渐减成多个数组,再对这些数组进行这些操作,判断给出的m数组是否满足可以进行这些操作。原创 2023-09-21 12:55:51 · 256 阅读 · 0 评论 -
cf 交互题
传统算法题的交互相当于跟已经输入的冷漠的数据进行交互,但是交互题相当于跟一个人进行交谈。其实,还是要做题,我没做题前,感觉交互题不就是记得刷新一下缓冲区的么,其他有什么区别?读完题感觉算法就有了:读入S进行记录,从0开始递增判断是否在S里,第一个不在S里的数输出,之后输入什么,就输出什么就行。但是,这个交互我写错了,我把他当作传统题来写了:找到第一个不在S里的数输出,之后输入,然后判断输出-1结束。今天cf遇到了交互题,这个交互题的算法很很很简单,但是在交互上卡了,导致交上的代码都不算罚时。原创 2023-09-12 13:03:01 · 1242 阅读 · 0 评论 -
2019 ICPC香港站 G. Game Design
证明如下:常见的,1e5以内的质数个数不超过9.6e3,1e7以内的质数个数不超过6.7e6,1e9以内的质数不超过5.1e7。问题描述:怪物只能在树叶子节点出生,向上走,可以花费一个值在一个节点建防御塔,防御塔会阻碍怪物向上走。可以发现:每次进行操作,如果是质数就-1,加一个节点,在那个节点的基础上进行添加质数-1的所有最小质因子。如果是质数,例如11,可以进行减一操作后加上一个节点,在加的节点的基础上执行合数的操作方法。个节点数,及最多900个,但是实际情况远小于900,c的限制同理。原创 2023-09-07 16:43:54 · 140 阅读 · 0 评论 -
练习 3C Tree
问题描述:一个二叉树,根节点被感染了,可以通过删除一个节点使这个树分成两个部分,从而使分离开的子树无法被感染,求这样操作,有最多多少个节点是未被感染的(删除的节点不算未被感染的)。设状态为从根节点到一个节点的路径和为i时,存在了大于d的边和不存在大于d的边。问题描述:一个满k叉树,对于一个节点来说,它到它k个节点的边权分为1…思路:记录一条路径上连续的1的个数,如果连续的1的个数大于k,则后面怎么都到达不了,否则就有可能。问题描述:一个树,叶子节点有餐馆,从根节点出发到餐馆求有多少条路。原创 2023-09-06 13:46:27 · 238 阅读 · 0 评论 -
E2. Unforgivable Curse (hard version)
发现对于一个连通块而言,这一个连通块内的字符总是可以进行交换。如果对于一个连通块来说,两个字符串在这个连通块中的字符种类对应的个数是相同的,那么总是可以经过若干操作,使这两个字符串在连通块中对应的下标的元素相等。因此dfs找连通块,之后判断这个连通块中字符种类及其对应的个数是否相等,相等则可能相同,不等则一定不相等。问题描述:给两个字符串和一个k。,s为两个字符串之一。原创 2023-09-06 11:38:13 · 262 阅读 · 0 评论 -
D. Choosing Capital for Treeland
问题描述:Treeland国有 n 个城市, 这 n 个城市连接成了一棵树, 靠单向道路相连, 现在政府想要选择一个城市作为首都, 条件是首都必须能到达其他所有城市, 现在我们不得不将一些道路反转方向, 记反转的条数为 k 条, 我们要找到所有使 k 最小的首都.思路:树形dp。找一个根,从根向下遍历,可以求出以u为根的节点到其所有子节点需要反转几次。之后在遍历,求出节点v到它的所有父亲节点需要反转几次。原创 2023-09-05 11:07:24 · 114 阅读 · 0 评论 -
E. Replace the Numbers
预处理f,初始化是1到5e5的。之后每经过一次操作二,思路:离线处理,倒叙遍历。范围是5e5,可以开个数组。原创 2023-09-05 09:48:58 · 211 阅读 · 0 评论 -
C. Balanced Stone Heaps
问题描述:给一个长度为n的数组。执行以下操作:i 从3 到 n 遍历,每次选择一个d,满足。思路:最小值最大值,二分答案。每一次都尽可能减去满足条件的最大的。如果按照题意进行顺序进行操作,会发现在当前位置满足。倒序进行则可以将这个给轻松判断。求数组中最小值的最大值。原创 2023-09-05 00:10:19 · 188 阅读 · 0 评论 -
A. Copil Copac Draws Trees
的边进行绘制不消耗次数,否则需要花一次绘制。问题简化:建树,按建树顺序进行绘制。对于第i个边,可以向。请计算 Copil Copac 绘制这棵树所需的读数。科皮尔-科帕克(Copil Copac)得到一个由。读取次数定义为 Copil Copac 执行步骤。条边组成的列表,该列表描述了一棵由。插件 cf better。思路:类似树形dp。原创 2023-09-01 22:38:17 · 444 阅读 · 0 评论 -
E. Living Sequence
可以发现这可以当作九进制,将k转为9进制,对于大于等于4的进行++操作,这样就避免了4的存在。问题描述:正整数中不能有4,问第k个数是多少。思路:不能选4,那就只有。原创 2023-09-01 21:38:07 · 203 阅读 · 0 评论 -
C. Another Problem on Strings
思路:暴力会挂,考虑优化。对于一个字串他满足’1’为k个条件时,它的前面第一个’1’前面是’0’,后面最后一个’1’后面是’0’。可以发现,如果记录第i个’1’和第i-1个’1’之间出现的’0’的个数,那么对于满足条件的右边来说,只需要加上。问题描述:给定一个k和一个01串,求该01串中有多少个’1’个数为k的字串,出现位置不同算不同的子串。为第cnt个’1’之前’0’到前一个’1’的’0’的个数。原创 2023-08-25 23:45:30 · 203 阅读 · 0 评论 -
B. Burning Midnight Oil
问题描述:给定n和k,求满足以下条件的最小的v。具有单调性,用二分。二分答案,最大值最小。原创 2023-08-25 23:44:51 · 162 阅读 · 0 评论 -
Problem - 1000F - Codeforces
线段树可以用于单点修改,区间查询,只需要将这一题转换为此即可。思路:离线处理,用线段树。将询问按右端点进行排序,预处理pre数组。pre数组表示这个数上一次出现的下标。最近的只出现一次的数字。如何进行单点修改呢。对于当前下标而言,对当前下标进行修改,将原来的PII值改为。,就表示一定不存在解,就是0。,同时也要对上一次的下标位置的点进行单点修改,修改值即为。是本次遍历的下标,这样对于每一次的查找来说,最小值的。问题描述:一个序列,q次询问。中只出现一次的数(任意一个即可)。是上一次出现该数字的下标,原创 2023-08-17 21:00:52 · 142 阅读 · 0 评论 -
cf*3 总结与反思
1原创 2023-01-09 21:52:45 · 68 阅读 · 0 评论 -
cf*3 总结与反思
1原创 2023-01-08 19:34:58 · 49 阅读 · 0 评论 -
cf*3 总结与反思
1原创 2023-01-07 15:26:31 · 61 阅读 · 0 评论 -
cf*反思与总结
cf原创 2022-11-30 00:02:18 · 61 阅读 · 0 评论 -
cf*3 总结与反思
cf原创 2022-11-27 23:31:15 · 87 阅读 · 0 评论 -
cf 2*题
cf题原创 2022-11-12 00:38:08 · 110 阅读 · 0 评论 -
CF 2*1400 做题反馈
cf反馈原创 2022-11-11 00:27:06 · 98 阅读 · 0 评论