04 2017 档案

摘要:BSGS 假设对于给定的a,b,质数p,我们要求满足$a^x=b(mod\;p)$的所有x。 一个常规的想法是直接枚举[1,p 1],因为$a^{p 1}=1(mod\;p)$,超过p就开始循环了,但是在p的范围较大时不可行。 我们先求出$[1,\sqrt[2]{x}]$的答案,然后对于更大的,直接 阅读全文
posted @ 2017-04-20 21:25 Krew 阅读(305) 评论(0) 推荐(0)
摘要:求模意义下的组合数$C^k_n\;mod\;p$是十分常见的问题,根据数据的不同也有多种求法,下面来谈谈一些常见的解法。 $[0]: 求n!\;mod\;p$ 代码: void init() { fact[0]=1; rep(i,1,p) fact[i]=(fact[i 1] i)%p; } int 阅读全文
posted @ 2017-04-18 11:06 Krew 阅读(743) 评论(0) 推荐(0)
摘要:中国剩余定理 CRT用于求解一组模线性方程组的解:$x\;mod\;m_i = a_i$。 令$M_i=\prod_{k=1\;and\;k\neq i}^nm_i$,求解$w_iM_i+km_i=1$,则答案在模$M$意义下的唯一解为$x=\sum_{i=1}^n w_iM_ia_i$ 代码: 阅读全文
posted @ 2017-04-17 23:34 Krew 阅读(147) 评论(0) 推荐(0)
摘要:费用流问题指的是在网络流边权新增“代价”这一属性后,在得到最大流量的前提下最小化代价之和的问题。 我们依然使用基于增广路的算法,只不过每次使用Bellman_Ford来寻找最短路。 如果要求代价最小可以在代价变为正时停止增广。 代码: 阅读全文
posted @ 2017-04-14 07:59 Krew 阅读(222) 评论(0) 推荐(0)
摘要:代码: 步骤: 1. 将代码存储为judge.sh 2. 在终端运行 chmod +x judge.sh 3. 在终端运行 ./judge.sh 阅读全文
posted @ 2017-04-13 20:40 Krew 阅读(726) 评论(0) 推荐(0)
摘要:假设我们需要一棵线段树,它要在可以维护普通线段树的操作的同时还可以查询历史版本。 最zz的做法当然是建出$m$棵线段树,时间和空间开销都是爆炸的,但是我们可以通过 每次尽可能使用原来的结点 来使复杂度降为$O(nlogn)$ 这样每次对于需要更改的结点,直接新建一个,而不是修改原来的结点,再储存一下 阅读全文
posted @ 2017-04-09 11:35 Krew 阅读(109) 评论(0) 推荐(0)
摘要:A. Codeforces 74D 题意:有$n(n\leq10^9)$个格子,每次可以插入一个衣服,位置为最长的连续空白段的中点,如果有多个则选择最靠右的一段,或者删除一个衣服,询问一段区间内的衣服个数 解析:用set维护插入与删除衣服的操作,每个节点为一段线段,存储它前面和后面的衣服指针,衣服存 阅读全文
posted @ 2017-04-04 14:28 Krew 阅读(149) 评论(0) 推荐(0)