上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页
摘要: 考虑题目所给出的式子:\(pos_i=(c_i+dx_i+y_i) \bmod n\),当 \(y_i\) 一定时,随着 \(x_i\) 的增大,得到的值会出现循环,即形成环。不难发现对于 \(x_i,y_i\) 的不同取值,\(c_i+y_i\) 可以看作对应一个环和该环的起始位置,\(x_i\) 阅读全文
posted @ 2020-08-29 16:48 lhm_liu 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 为方便处理,把树看作有根树,将陷阱房作为树的根。 先考虑一种特殊情况,老鼠起始房间和陷阱房是相邻的,即老鼠起始房间为根节点的一个儿子。一开始老鼠的决策是不可能向上走,其只可能一路向下沿最优路线到叶子节点,直到其无法行动。管理者的决策则是在老鼠向下走时堵住沿途的一些边,直到老鼠无法行动后,再堵住老鼠所 阅读全文
posted @ 2020-08-28 10:26 lhm_liu 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 发现任何时刻不会出现两片颜色相同的云朵,因此云朵的颜色是不用考虑的,询问即为区间内有多少个云朵。 因为云朵的运动是在天空中往返的,具有周期性,且每个云朵运动速度都相同,所以可以用二元组 \((time,lenth)\) 来表示一个云朵,\(time\) 为该云朵左端点位于左边界时的时刻,即 \(t- 阅读全文
posted @ 2020-08-27 08:27 lhm_liu 阅读(333) 评论(0) 推荐(1) 编辑
摘要: 先考虑一种网络流解法,从源点 \(S\) 向每个点连容量为 \(p_i\) 的边,每个点向汇点连容量为 \(s_i\) 的边,每个点向编号比其大的点连容量为 \(c\) 的边,该图的最大流即为答案。 但是复杂度无法接受,考虑换一种思路,观察建出的图: 发现这张图比较特殊,像最小割的模型,考虑将求最大 阅读全文
posted @ 2020-08-24 19:16 lhm_liu 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 形如 \(S_k(n)=\sum\limits_{i=0}^n i^k\) 的式子被称为自然数幂和。 本文介绍了求自然数幂和的若干方法,其中包括斯特林数和伯努利数的一些应用,其中证明的推导过程也有一些推式子的技巧。 扰动法 应用两次扰动法,当 \(k \geqslant 1\) 时,得: \[ \l 阅读全文
posted @ 2020-08-23 18:30 lhm_liu 阅读(1591) 评论(0) 推荐(9) 编辑
摘要: 根据本题的定义,对于两个串,若 \(lcp + lcs + k \geqslant | s |\),则这两个串形成了匹配。统计匹配次数考虑固定 \(lcp\) 长度,来找合法的 \(lcs\) 的个数。 对所有模式串 \(p_i\) 的正串和反串一起建出 \(AC\) 自动机,将询问挂在 \(p_i 阅读全文
posted @ 2020-08-21 15:23 lhm_liu 阅读(353) 评论(0) 推荐(1) 编辑
摘要: 先考虑贪心,发现当升级后一定是一直选取 \(bp\) 最大,即期望收益最大的游戏,而升级前的选取要考虑升级的概率和当前选取的收益,所以考虑 \(DP\) 来解决升级前的选取。 设 \(f_t\) 为还剩 \(t\) 秒且当前未成功升级的最大期望收益,\(v\) 为 \(bp\) 最大值,得: \[ 阅读全文
posted @ 2020-08-21 00:28 lhm_liu 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 首先将字符串翻转,相应地,有序串组也就翻转了,即为求最长的长度递增的有序串组,满足第 \(i\) 个串是第 \(i+1\) 个串的子串。进行贪心,发现最优秀情况下有序串组中的串长一定是逐渐加 $1$ 的,即长度为 $1,2,3,\dots$,因为可以对不是逐渐加 $1$ 的位置删去一些字符,来使之后 阅读全文
posted @ 2020-08-20 10:15 lhm_liu 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 直接求不好求,考虑用总方案数减去不合法方案数。设 \(f_{i,j}\) 为至少有 \(i\) 行 \(j\) 列颜色相同的方案数,设 \(g_{i,j}\) 为恰好有 \(i\) 行 \(j\) 列颜色相同的方案数,得: \[ \large f(x,y)=\sum_{i=x}^n\sum_{j=y 阅读全文
posted @ 2020-08-18 21:59 lhm_liu 阅读(444) 评论(0) 推荐(0) 编辑
摘要: 概念 模拟退火是随机化算法,可以用来解决一类不是单峰函数的问题。 其优于爬山算法的原因是其能通过接受当前最优解附近的非最优解,来跳出局部最优解。 对于新状态得到的解,若其更优则更新答案,否则以一定概率来判断是否接受新状态。 设温度为 \(T\),新状态和当前状态的能量差为 \(\Delta E(\D 阅读全文
posted @ 2020-08-17 21:43 lhm_liu 阅读(196) 评论(0) 推荐(0) 编辑
摘要: \(DP\) 来做的话会很麻烦,细节会很多,考虑乱搞一些的做法。\(n\) 很小,答案和排列顺序有关,所以考虑模拟退火来解决本题。 产生新状态即为交换当前排列的两个位置。调参时可以采取降低退火次数,升高温度和降温系数来处理,这样正确性会高。 #include<bits/stdc++.h> #defi 阅读全文
posted @ 2020-08-17 21:12 lhm_liu 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 首先对所有询问进行离线处理,因为是网格图,所以考虑用分治来解决。 对 \([1,n]\) 进行分治,对于区间 \([l,r]\),在 \(mid\) 两侧的点对互相要到达一定会经过 \(mid\) 所在的直线,因此每次处理出 \(f_{i,j,k}\) 和 \(g_{i,j,k}\),\(f_{i, 阅读全文
posted @ 2020-08-17 19:14 lhm_liu 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 考虑通过 \(DP\) 来解决本题。设 \(f_{i,j}\) 为考虑了前 \(i\) 个位置且第 \(i\) 个位置为数字 \(j\) 的方案数,\(s_i\) 为 \(\sum\limits_{j=1}^k f_{i,j}\),\(l_{i,j}\) 为位置 \(i\) 往前都是数字 \(j\) 阅读全文
posted @ 2020-08-17 16:35 lhm_liu 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 定理 若 \(p\) 为素数,得: \[ \large (p-1)! \equiv -1 \pmod{p} \] \(p\) 为素数和威尔逊定理互为充分必要条件,即威尔逊定理可以用来判定一个数是否为素数。 证明 先同除 \(-1\),即证明: \[ \large (p-2)! \equiv 1 \p 阅读全文
posted @ 2020-08-16 11:14 lhm_liu 阅读(703) 评论(1) 推荐(0) 编辑
摘要: 划分为 k 个正整数 设 \(f_{i,j}\) 为把 \(i\) 划分为 \(j\) 个数的方案数,得: \[ \large f_{i,j}=f_{i-j,j} + f_{i-1,j-1} \] 整体加 $1$ 和新划分 $1$。 划分为不重复的 k 个正整数 设 \(f_{i,j}\) 为把 \ 阅读全文
posted @ 2020-08-13 22:43 lhm_liu 阅读(770) 评论(0) 推荐(2) 编辑
摘要: 对无向图的三元环计数。 先对所有无向边定向,从度数小的点连向度数大的点,度数相同时,从编号小的点连向编号大的点。枚举每一个点 \(x\),将其连出的点 \(y\) 都打上 \(x\) 的标记,再枚举点 \(y\) 连出的点 \(z\),若点 \(z\) 有 \(x\) 的标记,则 \((x,y,z) 阅读全文
posted @ 2020-08-13 13:29 lhm_liu 阅读(674) 评论(0) 推荐(0) 编辑
摘要: 概念 长链剖分按深度剖分,重儿子为叶子最深的儿子。具体应用时可以通过指针记录信息,也可以优先遍历重儿子来 \(dfs\),链上信息为一个在 \(dfs\) 序上的连续区间,便于统计信息和将信息从重儿子合并过来。 void dfs_son(int x,int fa) { d[x]=dep[x]=d[f 阅读全文
posted @ 2020-08-13 11:09 lhm_liu 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 先二分答案 \(mid\),使得 $\frac \geqslant mid $,移项得: \[ \large val - tot \times mid \geqslant 0 \] 判定对每条边的边权都减去 \(mid\) 后,是否存在一条边权和大于零的路径即可。 考虑树形 \(DP\),设 \(f 阅读全文
posted @ 2020-08-12 21:44 lhm_liu 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 先考虑有 \(m\) 张牌,打 \(k\) 张的最优策略。发现强化牌的效果至少是翻倍,所以最优策略一定是在至少打出一张攻击牌的前提下,尽可能的多打强化牌,强化牌数量不够时,再由大到小打攻击牌。 设 \(F_{i,j}\) 为选出 \(i\) 张强化牌,打出 \(j\) 张的效果, \(G_{i,j} 阅读全文
posted @ 2020-08-11 17:40 lhm_liu 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 考虑对美丽值进行 \(DP\) 来统计答案,发现直接统计美丽值等于 \(v\) 的子序列方案数不好统计,不妨统计美丽值大于等于 \(v\) 的方案数。发现这样统计,美丽值为 \(v\) 的一个子序列在区间 \([1,v]\) 都会有贡献,所以这样的合法子序列的方案数即为答案。 先对 \(a\) 进行 阅读全文
posted @ 2020-08-10 17:58 lhm_liu 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 数据结构 线段树 注意更新信息时,不要直接覆盖,可能覆盖掉更优的信息。[WC2010] 重建计划,CF1320C World of Darkraft: Battle for Azathoth(梅开二度) 正确: if(l==r) { mx[cur]=max(mx[cur],v); return; } 阅读全文
posted @ 2020-08-10 16:11 lhm_liu 阅读(445) 评论(1) 推荐(1) 编辑
摘要: 用双指针扫描来找环,加入 \(r\) 位置的边后,若形成了环,就删去 \(l\) 位置的边,直到环断掉,加边删边和判定连通性用 \(LCT\) 维护即可。 考虑如何计算环的贡献,对于区间 \([l,r]\),若其形成了环,则区间 \([l,r+1],[l,r+2] \dots [l,m]\) 都形成 阅读全文
posted @ 2020-08-09 20:57 lhm_liu 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 设 \(f_i(x)\) 为以节点 \(i\) 为根的子树都以时刻 \(x\) 爆炸的最小代价,发现其为一个下凸的分段函数,即为一个下凸包。 考虑一个节点加上其与父节点的边后函数的变化,设原函数的最小值为 \(f_{\min}\),取到最小值的区间为 \([l,r]\),与父节点的边的边权为 \(v 阅读全文
posted @ 2020-08-06 21:44 lhm_liu 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 发现最优解可以表示为在起点等待一段时间,然后不停顿地走完一圈。因为停顿的原因是当前的物品没有出现,所以可以在起点先等待,然后不停顿地来标记。 对环倍长来将其转化为链,用 \(i\) 来枚举起始位置,\(j\) 来枚举物品,则答案可表示为: \[ \min\limits_{i=1}^n\left \{ 阅读全文
posted @ 2020-08-06 19:54 lhm_liu 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 考虑到随机排列来加入点等效每次随机一个点,符合独立集的限制就加入当前点集,不符合就不加入。 \(n\) 很小,考虑状压 \(DP\),设 \(f_S\) 为得到点集 \(S\) 内的点的最大独立集的概率,\(siz_S\) 为点集 \(S\) 内的点的最大独立集的大小。 \(DP\) 时枚举点集 \ 阅读全文
posted @ 2020-08-06 09:28 lhm_liu 阅读(231) 评论(1) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 12 下一页