
【算法】乘法逆元
文章平均质量分 88
cz_xuyixuan
这个作者很懒,什么都没留下…
展开
-
【BZOJ1488】【HNOI2009】图的同构
【题目链接】点击打开链接【思路要点】考虑Burnside引理或Polya定理,求解总共\(N!\)种点置换中边的染色方案等价类的个数总和,再将答案除以N!。考虑一个点集的置换\(P_{i}\),若将一个置换看做一张由\(N\)个点、\(N\)条边的无向图,那么显然,该图由若干个环组成。记其中每一个环长为\(A_{i}\),\(A\)可以看做一个\(N\)原创 2018-01-11 19:56:47 · 742 阅读 · 0 评论 -
【BZOJ1478】Sgu282 Isomorphism
【题目链接】点击打开链接【思路要点】考虑Burnside引理或Polya定理,求解总共\(N!\)种点置换中边的染色方案等价类的个数总和,再将答案除以N!。考虑一个点集的置换\(P_{i}\),若将一个置换看做一张由\(N\)个点、\(N\)条边的无向图,那么显然,该图由若干个环组成。记其中每一个环长为\(A_{i}\),\(A\)可以看做一个\(N原创 2018-01-11 20:14:38 · 473 阅读 · 1 评论 -
【BZOJ3813】【UOJ38】【清华集训2014】奇数国
【题目链接】BZOJUOJ【思路要点】首先,有一个直观的做法是对每一个质因子维护一棵树状数组,记录区间中该质因子指数的和。询问时先将\(product\)质因数分解的结果求出来,再用快速幂计算欧拉函数。时间复杂度是\(O(60NLogN)\),可以在UOJ上通过,但在BZOJ上会超时。进一步考虑,由于19961993是质数,我们可以方便地计算各个质因数的乘法逆元。所以我们用一颗线段树维护区间取模乘...原创 2018-02-27 09:55:19 · 393 阅读 · 0 评论 -
【BZOJ2616】SPOJ PERIODNI
【题目链接】点击打开链接【思路要点】笛卡尔树DP,先构建笛卡尔树。在本题中,我们可以把笛卡尔树的一个节点看做一个矩形,父节点的矩形在横坐标上包含子节点的矩形。记\(F_{i,j}\)表示在\(i\)的子树中放置\(j\)个车的方案数。转移时先FFT暴力合并子树信息:\(tmp_{i}=\sum_{j=0}^{i}F_{lc,j}*F_{rc,i-j}\)。然后再处理当前节点对应的矩形的转移:\(F...原创 2018-02-24 11:02:43 · 1004 阅读 · 1 评论 -
【CodeForces】CodeForces Round #475 (Div. 1 + Div. 2) 题解
【比赛链接】Div. 1Div. 2【题解链接】点击打开链接【Div.2 A】Splits【思路要点】由于我们希望得到尽可能不同的权值,我们可以考虑在拆分的开头放置若干个2,然后放1填补剩余的数字。不难发现答案等于\(\lfloor\frac{N}{2}\rfloor+1\)。时间复杂度\(O(1)\)。【代码】#include<bits/stdc++.h>using namespa...原创 2018-04-28 20:39:40 · 497 阅读 · 0 评论 -
【CodeForces】CodeForces Round #485 (Div. 1 + Div. 2) 题解
【比赛链接】Div. 1Div. 2【题解链接】点击打开链接【Div.2 A】Infinity Gauntlet【思路要点】按照题意模拟即可。时间复杂度\(O(NLogN)\)。【代码】#include<bits/stdc++.h>using namespace std;const int MAXN = 100005;template <typename T> voi...原创 2018-06-05 15:43:52 · 659 阅读 · 0 评论 -
【BZOJ2142】礼物
【题目链接】 点击打开链接 【思路要点】 当且仅当∑wi>N∑wi>N\sum w_i>N,答案为ImpossibleImpossibleImpossible,否则,答案为N!(∏wi!)∗(N−∑wi)!N!(∏wi!)∗(N−∑wi)!\frac{N!}{(\prod w_i!)*(N-\sum w_i)!}。 我们本质上需要解决若干组合数...原创 2018-07-12 16:48:56 · 458 阅读 · 0 评论