摘要: 题目链接 题意可转化为:只考虑前 \(i\) 条边构成的图 \(G_i\) ,对于每个点 \(u\) 有多少点 \(v\) 满足只经过大于 \(\min(u,v)\) 的点两个点互相可达。 对于一个固定的图 \(G_i\) ,我们可以通过 \(\text{floyd}\) 通过更新顺序维护 “动态加 阅读全文
posted @ 2021-09-07 17:26 Themaxmaxmax 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 题目链接 “不走回头路” 是一个很棘手的条件,但是我们发现对于一张图来说,如果不存在自环的话,那么路径经过顺序相邻的两点一定不是同一个点,因此考虑将图中的边看成点建图邻接矩阵维护边之间的可达关系跑矩阵快速幂即可。 代码记录 阅读全文
posted @ 2021-09-07 13:10 Themaxmaxmax 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 题目链接 对于无权图,我们的处理是很平凡的。 因为边权为 \(1\sim 9\) ,考虑如下拆点: 用有序对 \((u,k),u\in [1,n],k\in [0,8]\) 表示一个点,\(\forall k\in [1,8]\) 连有向边 \((u,k)\to (u,k-1)\) 。 即我们把每个 阅读全文
posted @ 2021-09-07 13:04 Themaxmaxmax 阅读(14) 评论(0) 推荐(0) 编辑
摘要: 题目链接 常系数线性递推数列 \(f_i=(af_{i-1}+c)\mod m\) 等价于 \(f_i=(af_{i-1}+c)\) 第 \(i\) 项对 \(m\) 取模。 直接向量乘矩阵加速 + 龟速乘 \(O(\log ^2 n)\) 。 代码记录 阅读全文
posted @ 2021-09-07 11:38 Themaxmaxmax 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 64位整数乘法 inline int fast_mul(int a,int b,int p) { int ans = 0; for (;b; b >>= 1){ if (b & 1){ ans = (ans + a) % p; } a = a*2 % p; } return ans; } 阅读全文
posted @ 2021-09-07 10:49 Themaxmaxmax 阅读(29) 评论(0) 推荐(0) 编辑