- 博客(57)
- 收藏
- 关注
原创 Codeforces Round 1067 (Div. 2) E.Sink 关于 DSU 的两种解法
研究了三天才看懂到底是咋做的E. Sinktime limit per test: 3 secondsmemory limit per test: 256 megabytesinput: standard inputoutput: standard outputYou are given a grid containing nnn rows and mmm columns. Every cell (i,j)(i, j)(i,j), located in the iii-th row and jjj-th c
2025-12-27 16:08:07
680
原创 Codeforces Round 1070 (Div. 2) A~D F
最近手感差的很,A能WA两发写20min,D调不出来,不过看别人的AC代码dp思路跟自己也不太一样…还是自己太菜了,加训div2了。
2025-12-12 18:07:57
934
原创 Hz的思维 / 构造题目总结
感觉XCPC考的算法越来越少了,以后刷codeforces还是要着重于构造题以及思维题,本文章写下笔者未来的一些关于cf思维题目的题解,包括但不限于 Ad-hoc,广义贪心,博弈,构造,以及一些数学数论和DP结合类的题目,旨在写下自己的一些trick积累,为明年XCPC做准备。
2025-12-08 14:50:50
829
原创 Codeforces Round 1040 (Div. 2) E1 - E3 交互题 | 思维
赛时连E1都没有开出来,一直在坐牢…赛后研究了下jiangly的代码,觉得很巧妙,遂写一篇博客,来帮助大家理解。
2025-08-01 23:15:46
1144
原创 关于 几个组合数学问题 & 第二类斯特林数 的思考
这几天借学长的账号补去年2024牛客暑期多校第一场 B 题时,接触到了一个很有意思的组合数学问题,简单抽离出来就是“将i个不同的小球放入到j个不同的盒子中会产生多少种方案?如果有人熟悉第二类斯特林数就会感觉到这个问题很熟悉,但是又不完全一样,因为第二类斯特林数所解决的问题是:“将i个不同的小球放入到j个相同的盒子中会产生多少种方案?盒子由不同的—>相同的接下来将对 盒子相同 / 不同, 球相同 / 不同, 盒子允不允许为空等情况进行总结与计算。
2025-06-24 18:10:56
908
原创 区间DP总结
第二种情况也可以理解为,上一步删除的那部分小回文串可以连同更大的回文串一并删除,那么这步操作的贡献上一步已经一并计算过了,就可以优化掉一步。常规的区间DP其实是一种较为模板的东西。,也只有在这个范围内才能做到。之后就是不同题目不同处理了。的区间全部删除的最小次数。的复杂度来解决问题。这里把初始化写在一起了。
2025-04-02 18:20:43
831
原创 数据结构优化DP总结
简单来说就是如果暴力枚举转移的话会超时,所以就需要记录下整个区间的某种贡献,然后一起转移,这样就可以省下很多的时间。最开始想到暴力枚举每一个元素都充当最高的“单峰”,但是这里的 n 过大,这样枚举肯定会TLE。其实也不一定需要树状数组,用前缀和也能达到一样的效果,只是树状数组比较好写,不费脑子。那就考虑能不能单调线性的考虑每个元素作为最高点的时候的解是多少呢?简单来讲就是最后需要呈现出一个单峰数组,使得总高度最高。建议先熟练掌握单调栈再来理解这题。这里就需要借助我们的。
2025-04-02 17:53:31
450
原创 线性DP总结
表示在 i ~ n 的范围内,目前枚举到了 i 位,且 i + 1 ~ n 这段中的最大的数字是 j,而且目前修改了k(k 只能取 0 / 1)的状态的数字最大值。转移方程就很简单了,从后向前遍历,f[i] 要不是从 f[i + 1] 转移过来,要不就是从 f[i + a[i] + 1] 转移过来。看一下转移,首先借助前缀和的思想,f[i] = f[i - 1],三个状态的数量都等于上一步的数量,再加上这一步的贡献。也就是枚举上一位的所有状态,再枚举这一位的所有状态,然后完成转移。
2025-04-02 17:51:13
905
原创 2025“钉耙编程”中国大学生算法设计春季联赛(4)题解
纯模拟,用一个heap和set去记录剩下的怪物中的攻击力最高的和还没有收到超过k次伤害的。
2025-03-29 22:06:26
530
原创 2025“钉耙编程”中国大学生算法设计春季联赛(2)题解
未来一段时间会在这个专栏下持续更新的相关题解,鉴于本人只是一个青名蒟蒻,很多题目可能都不会,但我会尽我所能的去理解。
2025-03-17 14:11:37
1452
原创 Hz的DP总结
鉴于本人是一个DP低手,以后每写一道DP都会在本篇博客下进行更新,包括解题思路,方法,尽量做到分类明确,其中的题目来自包括但并不限于牛客,洛谷,CodeForces,AtCoder等平台,希望有朝一日也能独立写出2000分的DP。
2025-03-05 23:24:28
941
原创 Codeforces Round 1007 (Div. 2) A~D1
二月最后一场cf给我整了一坨大的,差点把前几场上的分都掉完,不过有一说一,这题确实很有cf的感觉,思维难度还是挺大。
2025-03-01 14:08:51
933
原创 IAEPC Preliminary Contest (Codeforces Round 999, Div. 1 + Div. 2) C. Kevin and Puzzle
想到DP 并通过状态机转移。] 分别表示第 i 为是。
2025-01-21 23:23:06
363
原创 Codeforces Round 903 (Div. 3) E. Block Sequence
f[i] 表示从 i ~ n 转化为“美观”所需要的最少的步骤。注意边界问题以及初始化,f[n + 1] = 0;
2025-01-21 23:04:39
280
原创 Codeforces Round 826 (Div. 3) E. Sending a Sequence Over the Network (DP)
发现好多线性DP用了状态机都会很好写。
2025-01-10 12:01:16
1036
原创 Educational Codeforces Round 95 (Rated for Div. 2) C. Mortal Kombat Tower
人生中第一道初见一遍过的DP,感觉自己还是有进步的。
2025-01-01 13:50:15
1061
原创 Educational Codeforces Round 173 (Rated for Div. 2) ABC
教育场又被教育了 D 没有写出来。
2024-12-25 00:59:04
473
原创 Codeforces Round 995 (Div. 3) DE
排一下序,由于每一个数对都是唯一的,所以排完序后的数对数量不会改变,此时遍历数组,对每个元素,二分查找一个区间,这个过程一定是单调的,复杂度O(nlogn)
2024-12-23 13:27:36
442
原创 Codeforces Beta Round 14 (Div. 2) E. Camels (DP)
知道了状态表示,状态转移就很容易写出了,直接写六重循环,分别枚举i,j,k,a,b,c(第i+1个点的y值),看满足驼峰还是满足驼谷,分别加一即可,如果状态不合法,直接延续之前的状态。因为只有知道了相邻的两个点的高度才能实现状态转移。的个数,这样才能知道哪些方案是合法的,哪些不是。所以最后的状态表示需要五维。同时,我们不光要知道驼峰。这道题的状态表示很难想,但是如何实现状态转移呢?的个数,还得知道驼谷。
2024-10-05 22:21:26
860
原创 2024 ICPC Asia Taiwan Online Programming Contest K. Kingdom‘s Development Plan (SCC + 拓扑排序字典序输出)
首先使用Tarjan算法求强通分量来求解是否存在正环,如果存在则输出"IMPOSSIBLE"接着使用小根堆输出拓扑排序的结果,保证字典序最小。
2024-09-29 16:52:38
985
原创 Codeforces Beta Round 4 (Div. 2 Only) 4D. Mysterious Present (最长上升子序列变形)
简单来说,就是对于w,h分别为第一第二关键字排序,在保证w已经递增(非严格递增)的情况下,对h求最长上升子序列,同时记录一下pre值,方便后续回溯路径。这道题和 AcWing 1012. 友好城市 思路基本一致,建议先写一下AcWing的那道题,会ez一点。以及最后如果chain的size 等于0,直接输出一个0就行了,不需要再输出编号。但是这道题的坑很多,首先就是必须保证严格单调递增和排序,这就需要去重,这里我用了一个hash表去写。// respectively adv. 各自,分别,依次为。
2024-09-25 11:53:33
1200
原创 Codeforces Beta Round 2 B. The least round way(线性DP/数论)
但这里有一个特殊的地方,即如果最后的答案 >1,而矩阵中存在数字0,不难发现,当路径经过0的时候,最后的答案为1,显然更优。但这种情况我们在上面没有考虑到,最后输出的时候特判一下即可。设状态 f[i][j] 表示走到 (i, j) 这个点时,所有路径中乘积的后缀0最少的个数是多少。而这个问题,又可以转化为 走到 (i, j) 这个点时,所有路径中因数2或5最少的个数是多少个。使得该路径上的所有数字的乘积的“后缀0”最少。方阵,组成这个方阵的数字均为非负整数。表示的是 (i, j) 这个数字中因数2的个数。
2024-09-25 00:00:06
1028
原创 POJ 3335 Rotating Scoreboard (半平面交模板)
【代码】POJ 3335 Rotating Scoreboard (半平面交模板)
2024-09-11 21:57:01
986
原创 [AIZU ONLINE JUDGE] 计算几何 CGL_6_A(扫描线+线段树)
采用扫描线的思想,想象一根水平直线从下向上扫描,对于每一个存在水平线段的区间进行查询(也就是线段树里面的query操作),看该区间内有多少交点。这里注意,我们的思路是从下向上,一层一层的扫描,针对每个拥有水平直线的区间查询是否有竖直直线,如果有,我们记为1。给定若干垂直于坐标轴(有些垂直于X轴,有些垂直于Y轴)的线段,查询整个区间中有多少个交点。当从下向上扫描的过程中,遇到了一条竖直直线的下端点,就在该点(单点修改)+1;这样我们每换一条线就对线段树做n次修改,再进行m次查询,记录总和即可。
2024-07-29 23:52:08
509
原创 [AIZU ONLINE JUDGE] 计算几何 CGL_4_C (切割凸包)
As shown in the figure above, cut a convex polygon g by a line p1p2 and print the area of the cut polygon which is on the left-hand side of the line.g is represented by a sequence of points p1, p2,..., pn where line segments connecting pi and pi+1 (1 ≤ i ≤
2024-07-22 22:25:12
639
原创 [AIZU ONLINE JUDGE] 计算几何 CGL_4_B (旋转卡壳求凸包直径)
利用凸包上的一种很神奇的单调性,也就是旋转卡壳去求解凸包的直径,以达到线性的求解凸包直径的目的。
2024-07-22 21:29:55
459
原创 [AIZU ONLINE JUDGE] 计算几何 CGL_3_C (射线法判断一点是否在多边形内部)
For a given polygon g and target points t, print "2" if g contains t, "1" if t is on a segment of g, "0" otherwise.g is represented by a sequence of points p1, p2,..., pn where line segments connecting pi and pi+1 (1 ≤ i ≤ n−1) are sides of the polygon. Th
2024-07-17 20:26:04
1065
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1