摘要:
我们需要求出一个不定方程的一个解: \(\begin{cases}x&\equiv a_1\pmod {n_1}\\x&\equiv a_2 \pmod{n_2}\\ &\vdots\\x&\equiv a_k\pmod{n_k}\\\end{cases}\) 其中x为我们需要求解的 第一个不定方程 阅读全文
摘要:
我们定义 \(dp_i\) 为前 \(i\) 个字符最长分割的数量,我们发现 \(dp_i\) 可以从 \(dp_j\) \((0\leq j < i)\) 转移过来,并且发现使得 \(j\) 尽可能大,可以使得往后的转移条件更容易到达(不会表述) 所以我们只需要 \(n^2\) 就可以辣! #in 阅读全文
摘要:
我似乎是第二个通过的人诶,第一个通过的似乎是神仙出题人。%%% 其实并不复杂,比前面那一堆毒瘤题简单的多。我们发现从一个木板上可以到达的木板最多只有两个,所以我们首先将木板从高到低排序,然后再找到从木板 i 下落能到达的一个或两个木板,连上边。 由于我们只能从上往下落,所以这个有向图显然没有环,是一 阅读全文
摘要:
我们知道有很多种求LCA的方法,比如直接暴力向上跳求取LCA,倍增求LCA,还有tarjan求LCA(我不会),以及ST表求LCA ST表求LCA的最大优点是预处理过后每次询问的复杂度是 \(O(1)\) 的,这非常的优秀。 在求LCA的过程中,ST表起到的还是一个查询区间最小值的操作,并不是什么奇 阅读全文
摘要:
递推预处理以2为底的对数: \(f_1 = 0,f_2 = 1,f_x = f_{x/2}+1\) 阅读全文
摘要:
我今天居然一次提交就A了!惊喜! 树链剖分可以在树上维护点的权值,可以进行一条链上的求和和修改操作,也可以将一个子树进行求和和修改。 我们的具体做法是要将这个树放到一个序列里,然后使用线段树来维护它。 我们定义重链和轻链,重链是指一个节点连向它最重的子节点的边,我们可以发现我们将相连的重链看做一条重 阅读全文
摘要:
欧拉函数 欧拉函数 \(\varphi(a)\) 为小于等于 \(a\) 的正整数中与 \(a\) 互质的个数。 显然得到 \(\varphi(1) = 1\) ,当 \(a\) 为质数的时候我们有 \(\varphi(a) = a-1\) 同时,我们有$\varphi(n) = n\times(\ 阅读全文
摘要:
1066排队接水 需要让平均等待时间最小也就是需要让总等待时间最小。我们可以让每一个时刻等待的人数最少。显然我们让耗时少的人先打水可以使得答案最优。 水壶大喝不上水石锤(滑稽 1067最大整数 显然是要将整数从高到低位排序的,但是我们考虑这种情况: 63 637 63 631 发现这时不好排序,我们 阅读全文
摘要:
传送门 一道线段树的题,并不是很复杂。 我们需要维护一个正整数数列,有区间和查询和区间开平方修改。 我们发现一个很好的特性:\(\sqrt 1 = 1\) 所以我们可以维护一下区间最大值,如果不大于1那么就不需要进行任何修改,如果有大于1的就像左右递归,到树叶处手动修改。 我们算一下复杂度:一共n个 阅读全文
摘要:
代码摘自oi-wiki void phi_table(int n, int* phi) { for (int i = 2; i <= n; i++) phi[i] = 0; phi[1] = 1; for (int i = 2; i <= n; i++) if (!phi[i]) for (int 阅读全文