07 2018 档案

摘要:题目链接 权限题 "BZOJ4332" 题解 容易想到dpg[i][j]表示前i人分到j颗糖的所有方案的乘积之和 设f(x)=Ox2+Sx+U g[i][j]=k=1j1g[i1][k]f(jk) 是一个卷 阅读全文
posted @ 2018-07-15 12:24 Mychael 阅读(303) 评论(0) 推荐(0) 编辑
摘要:题目链接 "CF528D" 题解 可以预处理出S每个位置能匹配哪些字符 对每种字符 构造两个序列 如果S[i]可以匹配该字符,则该位置为0,否则为1 如果T[i]可以匹配该字符,则该位置为1,否则为0T翻转一下做卷积 如果某个字符意义下的某个位置为1,就说明出 阅读全文
posted @ 2018-07-14 15:45 Mychael 阅读(267) 评论(0) 推荐(0) 编辑
摘要:题目链接 "uojUNR3B" 题解 如果不输出方案,是有一个经典的三分做法的 但是要输出方案也是可以贪心的 设d[i]i节点到最深的儿子的距离 贪心选择d[i]大的即可 cpp include include include include include include inclu 阅读全文
posted @ 2018-07-13 21:55 Mychael 阅读(179) 评论(0) 推荐(0) 编辑
摘要:题目链接 "uoj233" 题解 下面不加证明地给出几个性质: 1. 小于h[1]的城市一定是没用的 2. 任何城市联通包含1且只和1联通一次 3. 联通顺序从小到大最优 4. 单个联通比多个一起联通要优 5. 最优解中多个一起联通不超过14次 除了最后一个外还是很显然的 K足够 阅读全文
posted @ 2018-07-13 15:38 Mychael 阅读(317) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ2150" 题解 复习: 带上下界网络流两种写法: 1. 不建TSINF的边,即不考虑源汇点,先求出此时超级源汇的最大流,即无源汇下最大的自我调整,再加入该边,求超级源汇最大流增加的流量 2. 先求出【或观察出】ST的最大流,记为tot,然后撤销流量,再建立 阅读全文
posted @ 2018-07-13 14:46 Mychael 阅读(180) 评论(0) 推荐(0) 编辑
摘要:题目链接 "洛谷P4240" 题解 式子不难推,分块打表真的没想到 首先考虑如何拆开φ(ij) 考虑公式 φ(ij)=ijp|ijp1p 而 $$ \begin{aligned} \varphi(i)\va 阅读全文
posted @ 2018-07-13 09:04 Mychael 阅读(240) 评论(0) 推荐(1) 编辑
摘要:题目链接 "BZOJ3235" 题解 求出每个点为顶点,分别求出左上,左下,右上,右下的矩形的个数g[i][j] 并预处理出f[i][j]表示点(i,j)到四个角的矩形内合法矩形个数 就可以容斥计数啦 枚举顶点(i,j),乘上另一侧矩形个数,如图: 但是会算重,对于这样的情况 减去即 阅读全文
posted @ 2018-07-12 21:36 Mychael 阅读(314) 评论(0) 推荐(0) 编辑
摘要:题目链接 "51nod1236" 题解 用特征方程求得斐波那契通项: f(n)=(1+52)n(152)n5 那么 $$ \begin{aligned} ans &= \s 阅读全文
posted @ 2018-07-12 17:43 Mychael 阅读(243) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3118" 题解 少有的单纯形好题啊 我们先抽离出生成树 生成树中的边只可能减,其它边只可能加 对于不在生成树的边,其权值一定要比生成树中其端点之间的路径上所有的边都大 然后就是一个最小化的线性规划 为了防止限制过多 我们只需对原先生成树中的比该边大的边建立限制即可 然后就是单纯 阅读全文
posted @ 2018-07-12 16:23 Mychael 阅读(306) 评论(3) 推荐(0) 编辑
摘要:题目链接 "BZOJ2322" 题解 鉴于 "BZOJ2115" ,要完成此题,就简单得多了 对图做一遍dfs,形成dfs树,从根到每个点的路径形成一个权值,而每个返祖边形成一个环 我们从根出发去走一个环再回到根,最终会异或上环的权值而又回到根 所以环是可以任意选的 我们把环的权值丢进线性基 阅读全文
posted @ 2018-07-12 10:35 Mychael 阅读(270) 评论(0) 推荐(0) 编辑
摘要:任意模数NTT 众所周知,为了满足单位根的性质,NTT需要质数模数,而且需要能写成a2k+12kn 比较常用的有998244353,1004535809,469762049,这三个原根都是3 如果要任意模数怎么办? n次多项式在模m下乘积,最终 阅读全文
posted @ 2018-07-12 08:45 Mychael 阅读(2482) 评论(6) 推荐(4) 编辑
摘要:题目链接 "B51nod1229" 题解 我们要求 i=1nikri 如果r=1,就是自然数幂求和,上伯努利数即可O(k2) 否则,我们需要将式子进行变形 要与n无关 设 $$F(k) = \sum\limits_{i = 阅读全文
posted @ 2018-07-11 21:50 Mychael 阅读(310) 评论(0) 推荐(0) 编辑
摘要:伯努利数 伯努利数,第i项记为Bi,是专门解决自然数幂求和而构造的一个数列 我们先记Sk(n)=i=0n1ik 那么,不知道为什么 $$S_k(n) = \frac{1}{k + 1}\sum\limits_{i = 0}^{k}{k + 阅读全文
posted @ 2018-07-11 20:09 Mychael 阅读(431) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ2738" 题解 将矩阵中的位置取出来按权值排序 直接整体二分 + 二维BIT即可 cpp include include include define LL long long int define REP(i,n) for (int i = 1; i 57){if (c == 阅读全文
posted @ 2018-07-11 10:59 Mychael 阅读(189) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ1185" 题解 最小矩形一定有一条边在凸包上,枚举这条边,然后旋转卡壳维护另外三个端点即可 计算几何细节极多 1. 维护另外三个端点尽量不在这条边上,意味着左端点尽量靠后,右端点尽量靠前,加上或减去一个eps来处理 2. C++printf输出0.00000阅读全文
posted @ 2018-07-11 10:09 Mychael 阅读(212) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ4830" 题解 当a=b时,我们把他们投掷硬币的结果表示成二进制,发现,当A输给B时,将二进制反转一下A就赢了B 还要除去平局的情况,最后答案就是 2a+b(a+ba)2ab 阅读全文
posted @ 2018-07-11 07:52 Mychael 阅读(238) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3738" 题解 "复习" 同上 但是为了消去因子10,处理2k的时候,乘回2k1时,应同时计算5k2 如果k1k2,乘上5k2的逆元 如果$k_1 include include include include i 阅读全文
posted @ 2018-07-10 20:22 Mychael 阅读(156) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3193" 题解 注意key是小于 第一问,显然按高度降序排序,逐个插入 如果高度各不相同,那么之前插入的都比当前插入的i大,可插入的位置个数就确定了 由于存在高度相同的情况,将key作为第二关键字升序排序 这样后面插入的就一定能插入前面插入的之后,统计一下之前插入了$c 阅读全文
posted @ 2018-07-10 10:24 Mychael 阅读(214) 评论(0) 推荐(0) 编辑
摘要:题目链接 "CF960G" 题解 同 "FJOI2016" 只不过数据范围变大了 考虑如何预处理第一类斯特林数 性质 xn¯=i=0n[ni]xi 分治$ 阅读全文
posted @ 2018-07-10 08:14 Mychael 阅读(409) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ5058" 题解 可以发现任意两个位置A,B最终位置关系的概率是相等的 如果数列是这样: CCCCACCCCBCCCC 那么最终有7种位置关系 (A,B) (A,C) (B,A) (B,C) (C,A) (C,B) (C,C) 手玩出$7 \t 阅读全文
posted @ 2018-07-09 15:52 Mychael 阅读(505) 评论(0) 推荐(0) 编辑
摘要:"例题" PAM 用以处理回文串问题的一类自动机 每个节点代表一类回文串 节点信息: 回文串长度,fail指针,子节点,出现次数等等 初始化 初始化回文串的时,建立两个节点,长度分别为10,代表奇数回文串和偶数回文串,并标记偶数节点的fail为奇数节点【当任意长度的回文串都不存在时, 阅读全文
posted @ 2018-07-09 11:50 Mychael 阅读(143) 评论(0) 推荐(0) 编辑
摘要:题目链接 "洛谷P4233" 题解 我们只需求出总的哈密顿回路个数和总的强联通竞赛图个数 对于每条哈密顿回路,我们统计其贡献 一条哈密顿回路就是一个圆排列,有n!n种,剩余边随便连 所以总的贡献为 (n1)!2(n2)n 我们只需求出总的强联 阅读全文
posted @ 2018-07-09 10:07 Mychael 阅读(222) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ4727" 题解 前置芝士 1.竞赛图存在哈密顿路径 2.竞赛图存在哈密顿回路,当且仅当它是强联通的 所以我们将图缩点后,拓扑排序后一定是一条链,且之前的块内的点和之后块内的点的边一定全都由前面指向后面 而每个块都是强联通的,所以我们从起点出发,一定能找到一条路径走完后面所有点 阅读全文
posted @ 2018-07-08 21:26 Mychael 阅读(477) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ5305" 题解 妙啊 要求的是所有可能的树形的所有点对距离和 直接考虑点的贡献肯定想不出,这样的所有点对距离问题通常转化为边的贡献 考虑一条边会产生多少贡献 我们枚举i节点的父亲边 首先我们认识到一点,按照题中所给的生成树的方式,n个节点的树有n!种形态 我们枚举了 阅读全文
posted @ 2018-07-05 20:10 Mychael 阅读(166) 评论(0) 推荐(0) 编辑
摘要:题目链接 "UVA10498" 题解 模板题 cpp include include include include include include include include include define LL long long int define REP(i,n) for (int i 阅读全文
posted @ 2018-07-05 19:04 Mychael 阅读(217) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ4868" 题解 最后的答案决定于最后一个公布的成绩 显然这个是答案关于这个时间点是呈凸单调的 三分一下这个时间点 时间点固定,在这个时间前的人都会产生不愉快度,在这个时间前的科目可以往后挪 我们只需贪心选择在这个时间后的科目按哪种方式往前挪 复杂度O(nlogn) cpp 阅读全文
posted @ 2018-07-05 10:40 Mychael 阅读(174) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ4870" 题解 ans=i=0(nkik+r)(modp) 发现实际是求 $$ans = \sum\limits_{i = 0}^{\infty}{nk \choose i}[i \mod 阅读全文
posted @ 2018-07-05 10:07 Mychael 阅读(261) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ4919" 题解 链上的LIS维护一个数组f[i]表示长度为iLIS最小的结尾大小 我们可以用multiset来维护这个数组,子树互不影响,启发式合并 一个点取更新数组时,只会改变第一个比它大的地方,因为这个点一定是将比它小的位置+1,只有+1后位置 阅读全文
posted @ 2018-07-05 09:35 Mychael 阅读(211) 评论(0) 推荐(0) 编辑
摘要:dsu on tree 说白了就是树上启发式合并,基于树剖 适用于不带修改的子树信息查询 复杂度O(nlogn) 例题 "CF600E" 对于每个点,暴力统计轻儿子子树信息,最后再统计重儿子 如果该点为重儿子,保留信息 否则再做一遍清空信息 由于每个点到根只有O(logn)条轻边, 阅读全文
posted @ 2018-07-05 08:32 Mychael 阅读(211) 评论(0) 推荐(0) 编辑
摘要:题目链接 "CF739E" 题解 抓住个数的期望即为概率之和 使用A的期望为p[i] 使用B的期望为u[i] 都使用的期望为p[i]+u[i]u[i]p[i] 当然是用越多越好 但是他很烦地给了个上限,我们就需要作出选择了 有一个很明显的O(n3)dp,显然过不 阅读全文
posted @ 2018-07-04 19:10 Mychael 阅读(189) 评论(0) 推荐(0) 编辑
摘要:自适应辛普森积分 非常简单而自欺欺人的一个东西,,就是拿积分区间中的端点和中点去模拟函数,如果分成两段积与分成一段积差别不大,就认为是这段的积分了 具体地,对于区间[l,r],我们认为它的面积为 $$S = \frac{(r l)(f(l) + 4f(\frac{l + r}{2}) + f(r 阅读全文
posted @ 2018-07-04 10:31 Mychael 阅读(736) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ4036" 题解 好套路的题啊,,, 我们要求的,实际上是一个集合n1中最晚出现的1的期望时间 显然minmax容斥 E(max{S})=TS(1)|T|+1E(min{T}) 阅读全文
posted @ 2018-07-03 22:00 Mychael 阅读(737) 评论(3) 推荐(1) 编辑
摘要:题目链接 "BZOJ3688" 题解 将点排序 设f[i][j][0|1]表示以第i点结尾,有j段,最后一段上升或者下降的方案数 以上升为例 $$f[i][j][0] = \sum\limits_{k = 1}^{i 1}\sum\limits_{y_k include include 阅读全文
posted @ 2018-07-03 20:33 Mychael 阅读(172) 评论(0) 推荐(0) 编辑
摘要:题目链接 "hdu6057" 题意 给出序列A[0...2m1]B[0...2m1],求所有 C[k]=iandj=kA[ixorj]B[iorj] 题解 我只能感叹太神了 看到题 阅读全文
posted @ 2018-07-03 12:02 Mychael 阅读(136) 评论(0) 推荐(0) 编辑
摘要:题目链接 "洛谷P3676" 题解 我们先维护1为根的答案,再考虑换根 一开始的答案可以O(n)计算出来 考虑修改,记s[u]表示u为根的子树的权值和 当u节点产生v的增量时,只影响1u路径上的s,权值和都+v 而对答案的影响是 $$ \begin{alig 阅读全文
posted @ 2018-07-03 10:29 Mychael 阅读(184) 评论(0) 推荐(0) 编辑
摘要:题目链接 "CSU1911" 题解 FWT模板题 cpp include include include include include include include include include define LL long long int define REP(i,n) for (int 阅读全文
posted @ 2018-07-03 07:05 Mychael 阅读(188) 评论(0) 推荐(0) 编辑
摘要:题目链接 "CF662C" 题解 行比较少,容易想到将每一列的状态压缩 在行操作固定的情况下,容易发现每一列的操作就是翻转01,要取最小方案,方案唯一 所以我们只需求出每一种操作的答案 如果操作的行的集合为S,那么对于状态为e的列,将会变成exorS,同时产生$ 阅读全文
posted @ 2018-07-02 21:04 Mychael 阅读(312) 评论(0) 推荐(0) 编辑
摘要:题目链接 "hdu5909" 题解 设f[i][j]表示以i为根的子树,i一定取,剩余节点必须联通,异或和为j的方案数 初始化f[i][val[i]]=1 枚举儿子v转移 $$f[i][j] = f[i][j] + \sum\limits_{x \; xor \; y = 阅读全文
posted @ 2018-07-02 20:12 Mychael 阅读(241) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ4589" 题解 "FWT" 模板题 cpp include include include include include include include include include define LL long long int define REP(i,n) for ( 阅读全文
posted @ 2018-07-02 17:40 Mychael 阅读(134) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ2436" 题解 看这O(n3)的数据范围,可以想到区间dp 发现同一个会场的活动可以重叠,所以暴力求出num[l][r]表示离散化后[l,r]的完整活动数 我们的目标求出F[l][r]表示[l,r]必须选时,二者的最小值 我们不妨令A选了$[l,r 阅读全文
posted @ 2018-07-02 15:43 Mychael 阅读(195) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3142" 题解 题意:选一个正整数和K1[1,M]中的数,使得总和小于等于N,求方案数模P 题目中$K(M 1) include include include include include include include include define L 阅读全文
posted @ 2018-07-02 10:30 Mychael 阅读(139) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ2878" 题解 除了实现起来比较长,思维难度还是挺小的 观察数据范围发现环长不超过20,而我们去掉环上任何一个点就可以形成森林 于是乎我们枚举断掉的点,然后只需求出剩余每个点为根的答案 设f[i]表示从i出发等概率走向子树的期望步数 如果i为根就是我们所需的答案 阅读全文
posted @ 2018-07-01 21:59 Mychael 阅读(248) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ2437" 题解 和 "JSOI2014" 很像 只不过这题动态删点 如果我们把空位置看做X的话,就会发现我们走的路径是一个OX交错的路径 然后将图二分染色,当前点必胜,当且仅当当前点必须作为最大匹配的匹配点 移动相当于删点,删点的话只需打个标记即可 判断当前点是不是必选 阅读全文
posted @ 2018-07-01 19:54 Mychael 阅读(214) 评论(0) 推荐(1) 编辑
摘要:题目链接 "BZOJ1443" 题解 既然是网格图,便可以二分染色 二分染色后发现,游戏路径是黑白交错的 让人想到匹配时的增广路 后手要赢【指移动的后手】,必须在一个与起点同色的地方终止 容易想到完全匹配的图先手是必胜的,因为完全匹配的图要么走到对面终止,要么从对面找一条非匹配边走回来,而由于是完全 阅读全文
posted @ 2018-07-01 18:41 Mychael 阅读(240) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ" 题解 拉格朗日乘数法 拉格朗日乘数法用以求多元函数在约束下的极值 我们设多元函数f(x1,x2,x3,,xn) 以及限制g(x1,x2,x3,,xn)=E 我们需要求f在限制g下的极值 如图 当f取到最值时,必然与$ 阅读全文
posted @ 2018-07-01 15:27 Mychael 阅读(238) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ2007" 题解 这是裸题啊,,要是考试真的遇到就好了 明显是最小割,而且是有来回两个方向 那么原图所有向右的边转为对偶图向下的边 向左的边转为向上 向下转为向左 向上转为向右 然后跑一遍最短路即可 cpp include include include include incl 阅读全文
posted @ 2018-07-01 12:17 Mychael 阅读(181) 评论(0) 推荐(0) 编辑
摘要:题目链接 "BZOJ3112" 题解 同志愿者招募 费用流神题 单纯形裸题 BZOJ可过 洛谷被卡。。 cpp include include include include include include include include define Redge(u) for (int k = 阅读全文
posted @ 2018-07-01 09:30 Mychael 阅读(237) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示