一眼根号复杂度。
这道题应该有很多做法。我的做法是尝试消掉 ,使得关于 只出现了一次项。
设
那么就可以枚举 解出 ,当 是整数是才是合法解。 是根号级别的,但是为了保险, 的值域可以开大一点。
赛时提交记录,稍微卡了点常,所以写法有点沟槽。应该不卡常就用 set 去重也能过。
Upd. 修了一点笔误。
显然是 DP,并且是稍微想一想就能发现性质的 DP。
首先攻击的形式一定钦定若干个生物,打死这些生物,使得剩下的生物形成若干个堆叠。对于每个堆叠,我们再从下往上依次一个个打死。容易发现,若 是一个独立的堆叠,需要的攻击次数是 ,减一与加一是因为除了第一个生物都会受到 的跌落伤害。设前缀和数组为 ,那么上式就是 。
注意到,为了减少攻击次数,我们会尽量增加摔落伤害...
看到 就显然分讨了。
Case 1:
此时显然无解。
Case 2:
此时答案即为从 走到 的方案数,即 。
Case 3:
即在 Case 2 的基础上再选一堵墙拆除。发现对于任意一条从 到 的路径,都可以选择其余任意一堵墙拆除。故答案为 。
Case 4:
发现此时又产生了两种情况。一种是路径长度依旧为 ,另一种是路径长度为 。
Case 4.1:路径长度为
即在 ...
首先,必要条件是两个序列的和相同。
容易发现,操作是可逆的。所以考虑将 和 变为一种相对规则的形式,比如单调。由于单调不降与单调递增是对称的,所以接下来讨论单调不降。
现在的问题是,能否将一个序列通过若干次操作变为单调不降的。考虑简化操作,变成:
交换 0 与 0 0
(或)交换 0 1 与 1
(或)交换 1 0 与 1
注意到,当序列之和(即 的数量) 时,我们一定可以把所有的...
手模几个样例之后,容易发现构造:
对于每个队伍,令其中 个人始终获胜,其中 个人始终战败。
那么对于每一个始终获胜的人,都可以匹配到 个其他队伍的始终战败的人。同理,对于每一个始终战败的人,都可以匹配到 个其他队伍的始终获胜的人。
当 是奇数时,每个队还各有 个人未被匹配。此时我们只能令其中一个人始终获胜。
综上所述,答案为 。代码就懒得放了。
这个月的日祭直接写一起了,基本都在补题。
注意到 7 月份后来状态不好。
[洛谷 P4198] 楼房重建
考虑用一棵普通线段树维护,每个节点维护区间的最大值与区间内好的序列的长度,push up 的时候需要写一个类似于线段树二分的东西,时间复杂度 。
[洛谷 P9824] [ICPC 2020 Shanghai R] Fountains
复杂度好神秘的一道题。自己写写不清楚,所以干脆看题...
本文是我的自述,非常口水话。
写的时候思绪比较混乱,所以可能有些地方不太清楚。
我很久之前就想写这种文章了,现在终于写好了。
这篇文章里我并没有有意针对谁,所以请不要想多了。
文章比较长,难免会有一些错别字,应该不影响理解。
除了第一部分的大部分内容与后来更新的内容(用 Upd. 标注),其他都是我在 2025.7.19~20 写的。
Part. 1 人身攻击与自我怀疑* 第一部分是我前段时...
本文提供一种动态开点线段树做法。
这道题写的时候调了很久,原因是 while(q--),而处理询问时又用到了 。
另外,sjx 在讲义中这样写:
为了解决空间问题,我们可以离线所有查询、删除和追加操作,然后 one by one 用线段树处理每个序列,每一个处理完后回滚到初始状态,再处理下一个。
为了解决空间问题,直接动态开点不就是了。
我们发现,每一行是相对独立的,所以考虑单独...
将题意转化一下,即我们要把 个标记中的若干个放到区间 内,且右端点各不相同的方案数。设 表示已经考虑了标记 ,当前还剩 个右端点没有使用的方案数。为什么要倒序遍历呢?因为标记 能使用的右端点,标记 一定能使用。转移分两种情况讨论。
若不选择当前这个标记,那么就多出了一个右端点。此时贡献是 。
若选择当前这个标记,包含它的区间的左端点有 中情况(),区间右端点有 种情况(原...
2025.7.1 好的标题
为什么你不写标题了呀?——@O_v_O
因为没想到好的标题。——@Getaway_Car
另外,注意到,我一月到六月的日祭数量如下:
月份
数量
有标题数量
我们的日祭正在蒸蒸日下!
[Codeforces 1610G] AmShZ Wins a Bet
CF 3300* 远古题,洛谷黑...