07 2018 档案
摘要:【Luogu4781】【模板】拉格朗日插值 题面 "洛谷" 题解 套个 "公式" 就好 cpp include define ll long long define MOD 998244353 define MAX 2020 inline int read() { int x=0;bool t=fa
阅读全文
摘要:【CF995F】Cowmpany Cowmpensation(多项式插值) 题面 "洛谷" "CF" 题解 我们假装结果是一个关于的次多项式, 那么,先暴力求解颜色数为的所有方案数 这是一个的 然后直接做多项式插值就好了, "公式戳这里" cp
阅读全文
摘要:求集合中选一个数与当前值进行位运算的max 这是一个听来的神仙东西。 先确定一下值域把,大概,再大点也可以,但是这里就只是写写,所以无所谓啦。 我们先看看如果暴力求怎么做,位运算需要给定的关系,总共种。 如果是暴力的话,我们的方法有两种, 第一种是比较
阅读全文
摘要:【HDU4471】Homework(矩阵快速幂) 题面 "Vjudge" 给定一个数列的前项,给定一个和前项相关的递推式。 有个位置的递推式单独给出,求数列第项。 题解 大部分的转移还是相同的,所以可以提前构建好矩阵,预处理转移矩阵的, 这样子可以在$O(t^2lo
阅读全文
摘要:【HDU4689】Derangement(动态规划) 题面 "Vjudge" 给定一个组成的字符串,长度为。 如果第位是,那么,否则$p_i include define ll long long ll f[22][22]; char ch[22]; int
阅读全文
摘要:【BZOJ4455】小星星(动态规划,容斥) 题面 "BZOJ" "洛谷" "Uoj" 题解 题意说简单点就是给定一张个点的图和一棵个点的树,现在要让图和树之间的点一一对应,并且如果树上存在一条边,那么图上对应的点对之间也要存在边。 我们直接求解显然很麻烦,一一对应是一个很不好算的东西。
阅读全文
摘要:【TopCoder10697】RabbitNumbering 题面 "Vjudge" 给定个数,每个数的范围是,求所有数都不同的方案数。 题解 把这个直接当做一个套路来用 对于排序,那么无论前面的选什么,因为它能够选择的最大值都小于当前数的限制, 所以必定对于当前数产
阅读全文
摘要:【BZOJ4311】向量(线段树分治,斜率优化) 题面 "BZOJ" 题解 先考虑对于给定的向量集,如何求解和当前向量的最大内积。 设当前向量,有两个不同的向量,并且 假设第一个向量的结果优于第二个。
阅读全文
摘要:【BZOJ4184】shallot(线段树分治,线性基) 题面 权限题啊。。。。。好烦。。 Description 小苗去市场上买了一捆小葱苗,她突然一时兴起,于是她在每颗小葱苗上写上一个数字,然后把小葱叫过来玩游戏。 每个时刻她会给小葱一颗小葱苗或者是从小葱手里拿走一颗小葱苗,并且 让小葱从自己手
阅读全文
摘要:【BZOJ4137】火星商店问题(线段树分治,可持久化Trie) 题面 "洛谷" BZOJ权限题 题解 显然可以树套树,外层线段树,内层可持久化Trie来做。 所以我们需要更加优美的做法。——线段树分治。 什么叫做线段树分治呢? 我们发现每次询问都是区间的形式,看到区间我们就可以想到线段数。 我们接
阅读全文
摘要:【BZOJ3712】Fiolki(并查集重构树) 题面 "BZOJ" 题解 很神仙的题目。 我们发现所有的合并关系构成了一棵树。 那么两种不同的东西如果产生反应,一定在两个联通块恰好联通的时候反应。 那么,我们按照并查集的合并顺序,类似于克鲁斯卡尔重构树的方法构建一个并查集重构树, 发现所有的反应恰
阅读全文
摘要:【BZOJ2151】种树(贪心) 题面 "BZOJ" 题解 如果没有相邻不能选的限制,那么这就是一道傻逼题。 只需要用一个堆维护一下就好了。 现在加上了相邻点的限制,那么我们就对于当前位置加入一个撤销操作。 怎么撤销呢? 如果我们选择了一个点,那么我们就把他前后两个位置删去, 然后将当前点合并为$a
阅读全文
摘要:【NOI2018】屠龙勇士(数论,exgcd) 题面 "洛谷" 题解 考场上半个小时就会做了,一个小时就写完了。。 然后发现没过样例,结果大力调发现中间值爆了,然后就没管了。。 然后又没切掉。。。~~我是真的傻逼。。。~~ 首先每次选择的刀一定,直接一个就算出
阅读全文
摘要:【NOI2018】归程(克鲁斯卡尔重构树) 题面 "洛谷" 题解 我在现场竟然没有把这道傻逼题给切掉,身败名裂。 ~~因为这题就是克鲁斯卡尔重构树的模板题啊~~ 我就直接简单的说一下把 首先发现答案就是在只经过海拔大于的边的情况下,所有点到号点中最短路最小的那个点。所以预处理最短路径,构
阅读全文
摘要:【BZOJ4596】黑暗前的幻想乡(矩阵树定理,容斥) 题面 "BZOJ" 有个点,要求连出一棵生成树, 指定了一些边可以染成某种颜色,一共种颜色, 求所有颜色都出现过的生成树方案数。 题解 一脸的容斥啊。 先矩阵树定理暴力算出所有符合条件的生成树,然后减去中颜色的方案数,
阅读全文
摘要:【BZOJ1951】古代猪文(CRT,卢卡斯定理) 题面 "BZOJ" "洛谷" 题解 要求什么很显然吧。。。 给定的模数是一个质数,要求解的东西相当于是上面那坨东西的结果对于的取值。 但是不是质数,不好
阅读全文
摘要:【BZOJ3162】独钓寒江雪(树哈希,动态规划) 题面 "BZOJ" 题解 忽然翻到这道题目,突然发现就是前几天一道考试题目。。。 题解: 树哈希,既然只考虑这一棵树,那么,如果两个点为根是同构的, 他们的重心相同,所以直接找出树的重心,以重心为根进行转移 提前预处理每一棵子树的哈希值,因为相同的
阅读全文
摘要:【POJ2891】Strange Way to Express Integers(拓展CRT) 题面 "Vjudge" 板子题。 题解 拓展模板题。 cpp include include using namespace std; define ll long long define MA
阅读全文
摘要:【Luogu3676】小清新数据结构题(动态点分治) 题面 "洛谷" 题解 先扯远点,这题我第一次看的时候觉得是一个树链剖分+线段树维护。 做法大概是这样: 我们先以任意一个点为根,把当前点看成是一棵有根树。比方说以为根。 那么,在询问以为根的时候的答案,我们看看哪些子树发生了变化。 发
阅读全文
摘要:[复习]动态点分治 点分治,动态点分治,等等等各种分治。 因为我的智商经常欠费,导致我对于分治这个方面一窍不通。 但是动态点分治这个东西我又不是没有学过,只是过了这么久我什么都不会了。 所以还是重新理解一下吧。。。 首先,动态点分治需要构建出点分树,这个很好处理。 找重心是,每次重心分出
阅读全文
摘要:中国剩余定理 CRT 正常版本CRT 要解的是一个很容易的东西 保证$m_1
阅读全文
摘要:NOI2018游记 注:本文底下一切没有意义的评论都将被删除。 尽管yyb也写了很多和NOI无关的话 Day 1 今天是年月日,明天就是的报道日了。从考完之后到现在,不知不觉已经过去了一个半月。说真的,这段时间我对于
阅读全文
摘要:题面 "BZOJ" 题解 动态点分治什么的完全不记得了。这回重新写一写。 首先我们把点分树给建出来。 操作只有两种,修改和询问距离某个点的距离不超过的点的和。 两点之间的距离可以树链剖分之类的算,这里不再重复。 考虑如何计算答案。 对于每个点,把对于它的点分树上所有祖先的贡献给加好。 因为要方
阅读全文
摘要:【BZOJ1226】学校食堂(动态规划,状态压缩) 题面 "BZOJ" "洛谷" 题解 发现很小,意味着当前这个人最坏情况下也只有后面的一小部分人在他前面拿到饭。 所以整个结果的大致顺序是不会变化的。 对于一个人,他要占用的时间之和前面那个拿饭的人有关。 而他前面那个拿饭的人在队列中只有两种情
阅读全文
摘要:【BZOJ2216】Lightning Conductor(动态规划) 题面 "BZOJ,然而是权限题" "洛谷" 题解 似乎没什么意义,只需要从前往后做一次再从后往前做一次就好了。 只考虑从前往后,把给定的式子移项,可以得到 $p\ge a[j] a[i]+\sqrt
阅读全文
摘要:【BZOJ4709】柠檬(动态规划,单调栈) 题面 "BZOJ" 题解 从左取和从右取没有区别,本质上就是要分段。 设表示前个位置的最大值。 那么相当于我们枚举一个前面的位置,然后找到这一段中最大的 但是这样子很不优秀。 我们贪心的思考一下,既然这一段最后加起
阅读全文
摘要:【BZOJ3203】保护出题人(动态规划,斜率优化) 题面 "BZOJ" "洛谷" 题解 在最优情况下,肯定是存在某只僵尸在到达重点的那一瞬间将其打死 我们现在知道了每只僵尸到达终点的时间,因为僵尸要依次打死。 所以我们假设血量的前缀和是 那么我么必须在它到达的时间之前打出总共不
阅读全文
摘要:【BZOJ3437】小P的牧场(动态规划,斜率优化) 题面 "BZOJ" 题解 考虑暴力,设表示强制在处建立控制站的并控制的最小代价。 很显然,枚举上一个控制站的位置 ,其中$Calc(i,
阅读全文
摘要:【BZOJ3156】防御准备(动态规划,斜率优化) 题面 "BZOJ" 题解 从右往左好烦啊,直接一下再看题。 设表示第个位置强制建立检查站时,前面都满足条件的最小代价 即枚举上一个检查站建立的位置
阅读全文
摘要:【BZOJ2727】双十字(动态规划,树状数组) 题面 "BZOJ" "洛谷" 题解 我们去年暑假的时候考试考过。 我当时写了个大暴力混了分。。。。 大暴力是这么写的: 预处理每个位置向左右/上/下能够拓展的最多的长度(左右相当于分别求然后取) 接着枚举双十字的中轴线,所在的列 然
阅读全文
摘要:【BZOJ4361】isn(动态规划,容斥) 题面 "BZOJ" 题解 首先我们如果确定了一个不降序列,假设它的长度为, 那么可行的方案数为,但是这样有一些非法的情况,即删掉最后一个数之前已经是有序的了。 那么设表示长度为的不降序列的总数 因为所有长度为$
阅读全文
摘要:【BZOJ1068】压缩(动态规划) 题面 "BZOJ" "洛谷" 题解 比较简单的 设表示当前已经匹配到了原串的第个位置,上一个在第个字符之后的方案数。 每次从当前位置转移出去,转移只有两种。 一种是直接匹配一位,也就是$f[i][j]
阅读全文
摘要:【BZOJ4654】【NOI2016】国王饮水记(动态规划,斜率优化) 题面 "BZOJ" "洛谷" 题解 首先肯定是找性质。 明确一点, 比小的没有任何意义 。 所以我们按照排序,那么就是当前号位置的水量。 假设我们使用的次数不受到任何限制,我们思考怎么样才是最优。
阅读全文
摘要:【BZOJ2138】stone(线段树,Hall定理) 题面 "BZOJ" 题解 考虑一个暴力。 我们对于每堆石子和每个询问,显然是匹配的操作。 所以可以把石子拆成个,询问点拆成个,这样就是每次进行一次二分图的匹配。 当然可以用网络流+线段树优化连边来做,但是这样复杂度太高。 还
阅读全文
摘要:【BZOJ4651】【NOI2016】网格(Tarjan,哈希) 题面 "BZOJ" "洛谷" 题解 首先把题目稍微变得好说一些,给定一个网格,已经删去了若干个格子 问最少删去多少个格子使得图不连通。 这题的关键是要看出答案一定只有 证明一下一定存在答案不超过二。 在不是无解的情
阅读全文
摘要:【Loj 535】花火(线段树,扫描线) 题面 "Loj" 题解 首先如果不考虑交换任意两个数这个操作,答案就是逆序对的个数。 那么暴力就是枚举交换哪个两个数,然后用数据结构之类的东西动态维护逆序对。 但是这样还不够。 仔细观察哪些点交换了才有意义。 假设交换的位置是 首先必须有$h[l]
阅读全文
摘要:【BZOJ4200】【NOI2015】小园丁与老司机(动态规划,网络流) 题面 "BZOJ权限题,洛谷链接" 题解 一道二合一的题目 考虑第一问。 先考虑如何计算六个方向上的第一个点。 左右上很好考虑,只需要按照或者轴排序就行了。 对于度的斜角,两点一定在同一条直线上。 这条直线
阅读全文
摘要:有上下界网络流 有上下界的网络流即是在普通的网络流的基础上,额外添加每条边流量的限制。 普通的网络流可以认为是特殊情况的上下界网络流,即流量限制为 而现在,我们要求的每条边的容量限制为 这类问题我们大致可以分成三类。 无源汇
阅读全文
摘要:【Loj117】有源汇上下界最小流(网络流) 题面 "Loj" 题解 还是模板题。
阅读全文
摘要:【Loj116】有源汇有上下界最大流(网络流) 题面 "Loj" 题解 模板题。
阅读全文
摘要:【BZOJ4197】【NOI2015】寿司晚宴(动态规划) 题面 "BZOJ" 从中选择两个集合(可以为空集),使得两个集合中各选一个数出来,都互质。 求方案数。 题解 对于以内的所有数,它的最大质因子如果大于,那么便只有一个。 利用这一点,我们把所有数全部
阅读全文
摘要:【BZOJ2671】Calc 题面 "BZOJ" 给出N,统计满足下面条件的数对(a,b)的个数: 1. 2.整除 ~~我竟然粘了题面!!!~~ 题解 还是今天菊开讲的。 设出 那么,设$a=xd,b=yd,gcd(x,
阅读全文
摘要:【BZOJ3244】【NOI2013】树的计数(神仙题) 题面 "BZOJ" 这题有点假,上如果要交的话请输出 题解 数的形态和编号没有关系,因此对于序重标号,同时修改一下序方便做题。 因为的层数等于树高,所
阅读全文
摘要:【BZOJ4889】不勤劳的图书管理员(树套树) 题面 又是权限题,烦死了 "洛谷真好" 题解 分开考虑每一次交换产生的贡献。 假设交换 检查与对于区间产生的贡献 再考虑一下之间的贡献就好啦。 区间的贡献显然是区间内比他小的数的个数乘上当前位
阅读全文
摘要:【BZOJ3166】ALO(主席树) 题面 权限题qwq "资磁洛谷" 题解 用一个求出左右侧比这个数大的第个数, 然后用可持久化算一下就好啦 cpp include include include include include include include usin
阅读全文
摘要:【UOJ 188】Sanrd(min_25筛) 题面 "UOJ" 题解 今天菊开讲的题目。(千古神犇陈菊开,扑通扑通跪下来) 题目要求的就是所有数的次大质因子的和。 这个部分和筛中枚举最小值因子有异曲同工之妙。 "min_25筛什么的戳这里" 并且这题并没有积性函数。 所以我们先筛
阅读全文
摘要:【51Nod1258】序列求和V4(FFT) 题面 "51Nod" 多组数据,求: 题解 预处理伯努利数,时间复杂度 然后利用伯努利数求和即可。 $$\sum_{i=1}^n i^k=\
阅读全文
摘要:【BZOJ5306】染色(NTT) 题面 "BZOJ" "洛谷" 题解 我们只需要考虑每一个的贡献就好了 令 那么,开始考虑每一个的贡献 $$\sum_{k=0}^{lim}W[k]C_M^kC_N^{kS}\frac{(kS)
阅读全文
摘要:【BZOJ4943】【NOI2017】蚯蚓排队(哈希) 题面 "BZOJ" "洛谷" "UOJ" 题解 记得去年看网络同步赛的时候是一脸懵逼的。 昨天看到做了,今天就看了看。。 这不是的傻逼题吗。。。 呜。。。 开链表存一下前驱后继,因为询问长度不超过 那么,总的串的个
阅读全文
摘要:【BZOJ4912】天才黑客(最短路,虚树) 题面 "BZOJ" "洛谷" 题解 爷讲过的题目,然而我还是不会做 只有照着的程序打我才会做。。。。果然太弱了。 这道题目显然是把边看成点,然后把原图中的每一个点的入边和出边之间相互连边, 边权是的长度,也就是在$Tri
阅读全文
摘要:【BZOJ5333】荣誉称号(动态规划) 题面 "BZOJ" "洛谷" 题解 今天早上贱狗老师讲的。然而我还是不会。 只好照着代码大力理解一波。 首先观察等式,如果比较熟悉线段树,会发现就是线段树的前个祖先 而线段树是完全二叉树,也就所有东西形成了一个完全二叉树。 并且任意节点和它的
阅读全文
摘要:【BZOJ1088】扫雷(递推) 题面 "BZOJ" 题解 忽然发现这就是一道逗逼题。 只需要枚举一下第一个是什么,后面都能够推出来了。。 cpp include using namespace std; define MAX 11111 int f[MAX],ans,a[MAX],n; bool
阅读全文
摘要:【CF625E】Frog Fights(模拟) 题面 "CF" "洛谷" 翻译: 有只青蛙在一个被分为了等分的圆上,对于每份顺时针依次标号。 初始时每只青蛙所在的位置是,速度是。 然后从号青蛙开始,顺次移动,每只青蛙顺时针移动个格子。 途中碰到的所有青
阅读全文
摘要:【BZOJ4767】两双手(动态规划,容斥) 题面 "BZOJ" 题解 发现走法只有两种,并且两维坐标都要走到对应的位置去。 显然对于每个确定的点,最多只有一种固定的跳跃次数能够到达这个点。 首先对于每个点都计算出两种跳跃方法的次数。 然后按照跳跃次数排序。 显然只可能从跳跃次数少的跳跃到跳跃次数多
阅读全文
摘要:【BZOJ2339】卡农(递推,容斥) 题面 "BZOJ" 题解 先简化一下题意: 在中选择不重复的个数,使得他们异或和为的方案数。 我们设表示选择个数异或和为的方案数。 直接算是很麻烦的,所以我们反过来,总数减去不合法的。 因为确定了前$i
阅读全文
摘要:【BZOJ4198】【NOI2015】荷马史诗(贪心,Huffman树) 题面 "BZOJ" "洛谷" 题解 合并果子都是不知道多久以前做过的了。现在才知道原来本质就是一棵哈夫曼树啊。 这题我们仔细研究一下题目的意思。 就是让你构造一个叉树,所有的权值都放在叶子节点上,求权值乘深度和的最小值。
阅读全文
摘要:【BZOJ4802】欧拉函数(Pollard_rho) 题面 "BZOJ" 题解 这么大的范围肯定不好杜教筛。 考虑欧拉函数的计算式,显然只需要把分解就好了。 直接 cpp include include include include include includ
阅读全文
摘要:【BZOJ4522】密匙破解(Pollard_rho) 题面 "BZOJ" "洛谷" 题解 还是的模板题。 呜。。。
阅读全文
摘要:【BZOJ3667】Rabin Miller算法(Pollard_rho) 题面 ~~呜,权限题,别问我是怎么做的(我肯定没有权限号啊)~~ 第一行:CAS,代表数据组数(不大于350),以下CAS行,每行一个数字,保证在64位长整形范围内,并且没有负数。你需要对于每个数字:第一,检验是否是质数,是
阅读全文