- 博客(26)
- 收藏
- 关注
原创 NOI2023 攻略
如果想拿到铜牌,那么只需要把两天的签到写完即可。如果考场上犯蠢了,最简单的暴力有8535154036021118085351540360211180。如果想拿到银牌,需要把签到写出来并拼一些简单好写的暴力1003536100361532230710035361003615322307正常发挥的话1007052100361537310070521003615373是不难拿的。
2025-03-16 20:51:40
884
原创 2025联合省选游记
感觉这次打得还行,Day2Day\ 2Day2暴力没打满是败笔。感觉T1T1T1不会就开始慌,过了T1T1T1才能进状态的老毛病又犯了,这东西得慢慢改掉。用bitsetbitsetbitset存图都没想到,区间加等差数列写不对,太蠢了,还得练。不管怎样,终究是在一年后迈出了新的一步,前路漫漫,继续努力吧。
2025-03-10 15:37:02
595
原创 1.20模拟赛总结
T1T1T1挂了我是真没想到,出来后发现没开longlonglong\,longlonglong。。。T2T2T2没写出正解纯属ntntnt,不仅之前没学会,还被复杂的主席树思路给囚禁了,没想其他数据结构维护。时间分配不太合理,基本没给T4T4T4留时间。
2024-01-20 19:02:59
1574
1
原创 [LOJ 6058]百步穿杨(最小割)
在之前的思路里,因为题中保证箭塔之间互不在攻击范围内,所以我们认为一旦割掉了这条纵向路径中的任意一条边,其他边因为没有源点,所以放着不管也可以,但是我们发现因为图中既存在纵向路径又存在横向路径,所以剩余的边可以通过其他路径来继续发挥他不该发挥的作用,怎么办呢?考虑如何建图,对于纵向箭塔,我们让源点连向它,然后这个箭塔找到他射击轨道中最大的点权,之后在这条道路上串联,连的边权是出点减去最大点权,表示选这个点比选最大点少了多少值;不合法的情况也就是一个格子既被横向穿过,又被纵向穿过,为了割掉这种情况,我们把。
2024-01-05 20:11:24
449
原创 二分图之Hall定理小记
对于二分图GVE,令Nv表示点v的邻居集,则关于图G:设二分图G的两部分分别为VLVR且∣VL∣≤∣VR∣,则其存在一个大小为∣VL∣的匹配当且仅当∀S⊆VL,都有∣S∣≤∣v∈S⋃Nv∣。:对于一个k正则二分图(每个点度数都为k,其中k≥1),若其左右点数相等,那么其必有完美匹配。:设二分图G的两部分分别为VLVR,则其最大匹配为∣VL∣−S⊆V。
2024-01-04 19:52:41
2047
1
原创 [Ynoi2017] 由乃打扑克(区间第k小)
题目描述很简单,就是区间修改,求区间第k小。如果只是求区间第k小,我们可以使用整体二分,时间复杂度Onlog2n,也可以使用在值域主席树上二分,时间复杂度Onlogn。如果带一个单点修改,我们还可以使用整体二分,把修改拆成两个赋值操作,时间复杂度Onlog2n,当然也可以使用树套树来解决(但是我不会),时间复杂度Onlog2n但是如果是区间修改,整体二分和主席树就不太够用了,对于这种难搞的序列操作,考虑分块。
2023-11-10 21:02:05
189
1
原创 Card Guessing(期望dp)
所以我们只要算出猜对的序列数量和总的序列数量即可。总结:求期望的题可以考虑拆成求概率,求概率可以考虑拆成求方案数,求方案数可以考虑用背包来求。首先直接求期望显然不太好求,根据期望的线性性,我们把问题转化为求每次猜对的概率。张牌,注意我们在计数过程中为了方便,把相同花色的两张牌当做不同的两张)、数组,直接用组合数求不太好搞,我们考虑用背包的形式来求这个玩意,设。张牌中最少的来猜,这其实告诉我们影响决策概率的序列长度为。数组后,配合之前的分析,本题算是完美完结了。的决策序列中四种花色中最少的牌数为。
2023-11-03 19:22:53
78
原创 小清新图( Kruskal 重构树)
的点权即可(点权是时间)。那么回到本题,如果询问换成区间该怎么做呢?重构树可以查询两点之间路径最小的最大边权,或最大的最小边权,在一些题中非常好用。具体来说,我们考虑把边按照时间从小到大建。,最后取最大值即可,为什么呢?这个显然可以预处理一下,查询的时候直接线段树或。两点之间路径的最小的最大边权,这个问题正是。,答案更优,故只需计算相邻两点之间的。重构树,每次询问直接查询两点之间的。两点该怎么做,问题要求的就是。
2023-10-31 15:39:16
68
1
原创 [CERC2015] Cow Confinement(扫描线)
首先,我们关注到矩阵的右边界是在一列的最右边,所以优先级最高,花的优先级显然在牛的前面。因为图中有矩形,再加上牛能遍历到的地方其实是一个一个矩形面积的并,所以我们考虑做扫描线,竖着建一颗线段树,维护每一列的信息,因为牛只能往右往下走,所以我们从右从下进行扫描。还记不记得我们在扫到矩阵右边界的时候,需要处理一些值,这些值需要找到下面第一个矩阵边界,但是因为我们在上一列的时候把下面矩形的两条边界在。所以正确的做法是,我们应该把矩阵的左边界当做前一列的格子最右边的线,而优先级应是:矩阵右边界。
2023-10-29 16:40:25
86
1
原创 计树 【计数(树)dp】
我们把儿子的限制变成了一个,对于这个限制,我们从前往后枚举时只要记下前面的空位就保证了顺序,而对于子树的合并,并无限制,只要找到空位即可,显然比直接转移考虑两个状态要简单的多。(选择一个空位填进去的同时接一颗子树进来,因为接的子树和空位所在的子树不可以是同一颗子树,所以乘。,也就是说儿子编号可以有大有小,不好维护。(新开一颗子树的同时接一颗子树进来,因为可以选择左右儿子,所以乘上系数。总结:状态难维护时考虑转换状态,有什么需要维护的。的边,这样会形成一片森林(假设森林里有。颗树连到钦定的主树的空位中。
2023-10-25 19:15:07
116
原创 考试分析汇总
暴力还是可拼一下的,最后一题没有特别去推性质,以后还是得至少分析分析。的链打挂一个,少特判一种情况,考试最后关头还是得稳,不能太紧张,打的时候思维有些混乱,浪费了很多时间,还是得全部理顺再开始码,审完题目发现之前做过类似的题,准备磕一波正解。链的大样例没过,没发现问题在哪,气急败坏跳过。发现更简单了,直接码优先队列,过大样例。打挂很难绷,开始审题不清确实很不应该,发现样例过不去,重审题目,发现看错了。暴力码假,发现暴力不太好打,准备打链。,发现是简单题,直接开码线段树。和性质,码了码过大样例。
2023-10-25 17:22:08
121
原创 [CSP-S 2023] 种树 题解
你是一个森林养护员,有一天,你接到了一个任务:在一片森林内的地块上种树,并养护至树木长到指定的高度。森林的地图有n片地块,其中1号地块连接森林的入口。共有n−1条道路连接这些地块,使得每片地块都能通过道路互相到达。最开始,每片地块上都没有树木。你的目标是:在每片地块上均种植一棵树木,并使得i号地块上的树的高度生长到不低于ai米。你每天可以选择一个未种树且)的地块,种一棵高度为0米的树。如果所有地块均已种过树,则你当天不进行任何操作。特别地,第1天你只能在1号空地种树。
2023-10-24 19:19:57
1348
1
原创 2023csp-s游记
感觉这次出的题还没模拟赛出的好,比赛上过度相信大样例也挂了分,都算是不错的教训吧,这次挂分了下次noipnoipnoip就不挂了。保佑!老算法(如hashhashhash)还是得多看看了,不想再出现有思路不敢码的局面了QAQ。对了,希望CCFCCFCCF数据水点!
2023-10-23 09:22:14
244
原创 珂朵莉树(ODT)
珂朵莉树是一种基于 $set$ 的高级暴力数据结构。在**数据随机** 且含有区间平推操作(将区间 $[l,r]$ 中的数全部变为 $x$ )的情况下,维护各种区间骚操作(包括但不限于查询区间第 $k$ 大,查询 区间所有数 $x$ 次方的和)。
2023-10-19 14:24:10
170
1
原创 小明去旅游(高斯消元)
下标的每一位,显然这样就可以连续不重不漏的表示每一个状态。那么变量设好了,根据我们下标的定义,我们也可以很快的列出方程,只要让。首先这道题一看挺不可做的,所以考虑先把题意彻底捋顺,拿数学式子表达一下题意。的高斯消元做法(主要是对高斯消元的向量情况进行一下总结)总结:对于向量的高斯消元,考虑把向量压成进制数后进行消元。我们先考虑第一档,也就是只有一个属性的情况。方程列出来,剩下的就是高斯消元的过程了。进制的数,对于向量的每一个变量,当成。,为了不重不漏的设置变量,我们把。个属性,每个属性的范围是。
2023-10-12 19:27:38
58
原创 [JSOI2009] 等差数列(线段树)
为什么要这样设状态:因为我们要处理的状态是 散数+连续段 ,而散数只有一个,连续块很好维护,我们可以考虑抛弃散数维护,在合并时顺便处理散块,这样就变得容易维护状态。
2023-10-11 17:15:59
148
原创 破解密码(微扰排序)
我觉得对于微扰排序,他不像是一种算法,更像是一种意识,当排序时邻项之间交换不会大幅影响到整体时,我们可以直接按照策略排序从而保证最优。,这点看似很显然,但是相当于把两个串的交换操作给独立了出来,这就使得我们可以贪心的交换两个串而不影响其他。然后我们再考虑两个串之间的逆序对数量,每个串自己的逆序对没什么变化,我们只需考虑两个串之间的逆序对。听起来很高大上,实际上就是对于一个序列的排序中,确定邻项交换的原则(总之,当遇到排序题,考虑交换两项所带来的影响,进而考虑最优策略。函数,所以我们直接按照式子写一个。
2023-10-08 16:31:35
76
1
原创 [USACO18JAN] Cow at Large P(点分治)
开一个树状数组,我们对于每一颗子树中的每一个点求答案时,直接在树状数组中查找即可,处理完一颗子树后,我们把这颗子树中每个点的点权再插入树状数组中即可。当我们化简到这一步的时候,我们就可以发现,对于每一个极大子树的根的贡献可以化简为极大子树中每一个点的点权(,直接维护极大子树的根想想都很复杂,那么我们考虑能不能把根的贡献变成所有子树中点的贡献。总结:把点权转化为子树中每一个点的权值,之后跑点分治的思路很妙,需要多加理解。过程中对于每个点,我们求的是很多极大子树的根,且每个根的贡献为。
2023-10-06 21:24:35
143
1
原创 国庆考试总结
显然的将军饮马,但是考场上审题审错了,以为是ykxy=kxykx,调了一个小时,最后才发现审错了。。。反思:十年 OI 一场空,瞎审题目见祖宗。
2023-10-04 15:36:53
185
1
原创 干草堆(单调队列优化dp)
在正序处理复杂时考虑倒序处理。在dpdpdp有后效性时考虑增加数组来保证最优从而进行dpdpdp。细致的进行分析时间复杂度,说不定暴力代码就能艹过去。在区间最值转移dpdpdp过程中考虑单调性,用单调队列来优化。
2023-09-21 20:03:58
97
原创 【分块】蒲公英与作诗
作诗:N个数,M组询问,每次问[l,r]中。蒲公英:N个数,M组询问,每次问[l,r]中(区间众数)。都是要求区间中出现的次数,那么容易想到可以模仿一下蒲公英的这道题中求次数的做法。
2023-05-13 15:53:51
102
1
原创 分治与二分
分治与二分总结分治分治就是把一个大问题,难以直接解决的问题给拆分成一个个小问题的一个算法。分治有很多分法,最常见的是二分。方法1.先把大问题分解成几个小问题,如果还能继续分解,就继续分解小问题。常见的分法:循环,递归。2.从最小的问题开始解决,再往上递增(递归思想)。经典分治题#186 比赛安排。要求规划一个大表,就从一小块一小块开始。特殊用法快速幂:转化为几个小幂进行计算。 需要幂转化成二进制,再一一对应。归并排序:先分组,分到最小再一组一组排序。 除了求逆序对之外,没
2021-05-15 13:08:30
1062
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人