Codeforces Round #404 (Div. 2)

这一场比较水, 然而掉了rating......E题是原题, 连我都知道是原题, 可见多么裸. 但是比赛时只完成2/5, C题FST, E题手抖......而且都是被sqrt这个函数坑了...... 但是我要为出题人点赞. 他的Editorial写得非常详细, 有Hint, 有Tutorial, 还有至少两种语言的实现, 诚意满满. D是道不错的数学题. UPDATE: 经过提醒才发现Editorial为E题给了一种不带log的做法, 后面将会叙述. 题解: 5/5.

Read More

快速傅立叶变换及逆变换

本文是对FFT及iFFT的简要介绍, 包括原理的证明和代码实现 (不包括应用). 基层的原理我也不清楚啦......比如复数次幂到底是怎么回事, 比如范德蒙德矩阵的行列式怎么算 (不会线代TAT), 但是这里给出的证明在假定这些事实的基础上是正确的.

个人认为本文的优点在于比较简洁, 最后给毛爷论文里提到的合并DFT的技巧给了个简单的证明.

参考文献: <算法导论>, 毛爷爷 <再探快速傅立叶变换>, Picks的博客, vfk <炫酷反演魔术>, uoj 34 上的优秀代码.

前置技能: 复数的加减乘法, 多项式的基本概念, 矩阵的基本概念.

Read More

[WC 2013] 糖果公园

n个点的无根树, m种糖, 每个点有某种糖, 每种糖有权值d, 第i次吃某种糖有系数wi, 每次吃糖使愉悦指数增加权值x系数. q个操作, 每个操作修改某结点的糖的种类, 或者询问沿u到v的唯一路径一路吃过去的愉悦指数. (1≤di,wi≤10^6, wi是非递增序列, n,m,q≤10^5)

Read More

[bzoj 1068] [SCOI2005]王室联邦

把一棵N个点的无根树分成一些块, 使得每块的大小属于[B, 3B], 并且每块存在一个点, 块内所有点到该点的路径上的点均在块内 (但是该点可以在块外). 构造一种方案 (输出块数, 每个点所属的块的编号, 每块对应的那个特殊点, 允许多对一), 或者报告无解. (1≤N≤1000, 1≤B≤N)

Read More

[bzoj 3091] 城市旅行

维护一片点带权的森林. 森林最初是一棵N个点的树, 接着有M个操作: 删边, 连边, 路径加, 询问某路径上任取两点 (可相同) 路径上权值之和的期望 (输出一个既约分数). (1≤N≤5*10^4, 1≤M≤5*10^4, 前三种操作不合法则忽略, 询问的两点不连通则输出-1)

Read More

[bzoj 2631] tree: Link-Cut-Tree

维护一棵n个点的树, 初始权值为1, 支持: 路径权值加, 删除一条边并加入一条边 (保证操作完是一棵树), 路径权值乘, 询问路径点权和模51061的结果. (1≤n,q≤10^5, 0≤c≤10^4) 其实c的范围并不是这个. 爆int被坑了几次, 这次专门对每个式子计算了一番, 然后放心地提交, WA掉. 看了几个题解, 发现大家用unsigned, AC. 人与人起码的信任哪里去了......TAT

Read More