摘要: ##传送门 ##解题思路 令 \(dp[i][j]\) 表示从 \(1\) 号点到 \(i\) 号点的长度比最短路多 \(j\) 的路径的条数。 则答案为: \(ans=\sum_{i=0}^{k}dp[n][i]\) 从 \(n\) 开始在反图上进行转移,转移方程为: \(dp[u][k]=\su 阅读全文
posted @ 2021-06-20 16:38 尹昱钦 阅读(44) 评论(0) 推荐(0) 编辑
摘要: ##传送门 ##解题思路 在 \(O(n)\) 内求出 \(n\) 个数的逆元: 令 \(S=\sum_{i=1}^{n}a[i]\), 则 \(a[i]^{-1}=\frac{S/a[i]}{S}=S_1[i-1]*S_2[n-i]*S^{-1}\)。 其中 \(S_1\) 为 \(a[i]\) 阅读全文
posted @ 2021-06-20 11:32 尹昱钦 阅读(60) 评论(0) 推荐(0) 编辑
摘要: ##传送门 不得不说这题细节很恶心。 ##解题思路 二分最小时间x: 首先很显然的贪心是,每个节点的军队在时间x内一定要尽可能向上走,并且如果某个子树如果去支援别的子树,一定到的是子树的根节点(即根的儿子)。 所以我们可以用倍增判断在时间x内每个军队能到达的位置,把能到达根节点的并且还有剩余时间的拿 阅读全文
posted @ 2021-06-20 08:51 尹昱钦 阅读(46) 评论(0) 推荐(0) 编辑
摘要: ##传送门 比较综合的一道题。 ##解题思路 求把一条边变为0后这m条路径中的最短值,最大值最小,可以二分求解。 如何check某个答案x是否合法? 实质就是判断能否找到一条边,使得大于x的路径都经过这条边,并且减去这条边边权后路径长度都小于等于x。 于是我们先预处理出要求的路径的原长度(倍增求LC 阅读全文
posted @ 2021-06-20 08:23 尹昱钦 阅读(67) 评论(0) 推荐(0) 编辑
摘要: ##传送门 ##解题思路 我才不是因为题目变蓝题了才做的呢 看一眼数据范围,普通期望dp(dp[n][m])比较容易想,但是只有卑微的25分。 发现 \(n\leq10^{14}\),所以我们可以大胆推测做法只与m有关。 于是我们就从m入手思考这道问题。 设 \(f(n,m)\) 表示杀死n个带护盾 阅读全文
posted @ 2021-06-20 07:46 尹昱钦 阅读(71) 评论(0) 推荐(0) 编辑