03 2019 档案
摘要:AtCoder ExaWizards2019题解 "AtCoder" (因为代码直接用模板写的,可能有点冗长) A.Regular Triangle 给你三根棍子的长度,问你能否用他们组成等边三角形。 什么逗逼玩意? B.Red or Blue 给你一个由 组成的字符串,回答 的个数是否严格大于 的
阅读全文
摘要:【Luogu2664】树上游戏(点分治) 题面 "洛谷" 题解 很好的一道点分治题。 首先直接点分治,考虑过每个分治重心的链的贡献。 我们从分治重心开始找每种颜色,强制令一种颜色只在其到分治重心的链上第一次出现的位置统计贡献,假设子树大小是,那么对于当前分治重心的其他所有子树都会产生$s
阅读全文
摘要:【BZOJ4891】[TJOI2017]龙舟(Pollard_rho) 题面 "BZOJ" "洛谷" 题解 看了半天题....就是让你求在模意义下的值。。。 首先把分解,把中的这些质因子全部分解出来,剩下的部分和互质,直接求逆就行了,分解出来的部
阅读全文
摘要:【BZOJ4890】[TJOI2017]城市(动态规划) 题面 "BZOJ" "洛谷" 题解 数据范围都这样了,显然可以暴力枚举断开哪条边。 然后求出两侧直径,暴力在直径上面找到一个点,使得其距离直径两端点的最大距离最小。 然后我用线段树求的直径,就跑得很快了。 cpp include includ
阅读全文
摘要:【BZOJ4887】[TJOI2017]可乐(矩阵快速幂) 题面 "BZOJ" "洛谷" 题解 模板题??? cpp include include include using namespace std; define MAX 35 define MOD 2017 inline int read(
阅读全文
摘要:【BZOJ4873】[六省联考2017]寿司餐厅(网络流) 题面 "BZOJ" "洛谷" 题解 很有意思的题目 首先看到答案的计算方法,就很明显的感觉到是一个最大权闭合子图。 然后只需要考虑怎么构图就行了。 首先把那个奇奇怪怪的什么,首先可以拆到每个地方计算,然后$mx^2
阅读全文
摘要:【BZOJ4868】[六省联考2017]期末考试(贪心) 题面 "BZOJ" "洛谷" 题解 显然最终的答案之和最后一个公布成绩的课程相关。 枚举最后一天的日期,那么维护一下前面有多少天可以向后移,后面总共需要往前移多少天,扫一遍贪心就好了。
阅读全文
摘要:【Luogu3733】[HAOI2017]八纵八横(线性基,线段树分治) 题面 "洛谷" 题解 看到求异或最大值显然就是线性基了,所以只需要把所有环给找出来丢进线性基里就行了。 然后线性基不资磁撤销?线段树分治,没了。 cpp include include include include incl
阅读全文
摘要:【Luogu3732】[HAOI2017]供给侧改革(Trie树) 题面 "洛谷" 给定一个纯随机的串,每次询问之间所有后缀两两之间的的最大值。 题解 一个暴力的想法是构建之后把所有位置按照排序,每次询问相邻的两个就行了,然后拿
阅读全文
摘要:【Luogu3731】[HAOI2017]新型城市化(网络流,Tarjan) 题面 "洛谷" 给定一张反图,保证原图能分成不超过两个团,问有多少种加上一条边的方法,使得最大团的个数至少加上。 题解 ~~本来并不会做的,看题解第一句话就会了QwQ~~ 对于在反图上没有边的点之间是存在一条边的。
阅读全文
摘要:【BZOJ5332】[SDOI2018]旧试题(数论,三元环计数) 题面 "BZOJ" "洛谷" 题解 如果只有一个,那么我们可以枚举每个答案的出现次数。 首先约数个数这个东西很不爽,就搞一搞,变成 那么原式就可以写成:$\displ
阅读全文
摘要:【BZOJ3157/3516】国王奇遇记(数论) 题面 "BZOJ3157" "BZOJ3516" 题解 先考虑怎么做的情况、 令,然后推式子: $$\begin{aligned} f(n+1,
阅读全文
摘要:【BZOJ2137】submultiple(数论) 题面 "BZOJ" 题解 首先不难发现答案就是:。 数据范围给定了。 发现对于很小的时候,可以直接用快速幂预处理出来,这样子可以做到$
阅读全文
摘要:【CF734F】Anton and School(构造) 题面 "Codeforces" "洛谷" 题解 算是一道? 发现。 那么根据给定条件我们就能确定唯一的数列,最后再带回去一下就做完了??? cpp include inclu
阅读全文
摘要:【CF618F】Double Knapsack(构造) 题面 "洛谷" "Codeforces" 题解 很妙的一道题。 发现找两个数集很不爽,我们强制加强限制,我们来找两个区间,使得他们的区间和相等。 把区间和转为前缀和的形式,现在问题变成了,给定两个单增的数列,不妨令$A_n inclu
阅读全文
摘要:【BZOJ2034】最大收益(贪心) 题面 "BZOJ" 题解 首先显然让价值越大的占用一个时刻一定更优。 所以把所有东西按照价值排序之后来处理,那么显然就是把前面的全部放好之后,考虑来放当前这个东西,如果能够放下那么就放,否则直接丢掉。 考虑如何检查是否能下放。 首先缩小区间的规模,对于每个位置,
阅读全文
摘要:【CF981D】Bookshelves(贪心,动态规划) 题面 "洛谷" "Codeforces" 给定一个长度为的数列,把他们划分成段,使得每段的和的结构按位与起来最大。 题解 从高位往低位贪心,然后暴力就行了吧。。。 cpp include include using nam
阅读全文
摘要:【CF865D】Buy Low Sell High(贪心) 题面 "洛谷" "CF" 题解 首先有一个的很显然,设表示前天手中还有股股票的最大收益。转移显然。 然而这样子似乎并没有什么优化的余地。 考虑这样子一个贪心,假设我们已经知道了前面$n
阅读全文
摘要:【BZOJ3716】[PA2014]Muzeum(贪心,网络流) 题面 "BZOJ" 题解 很明显可以写最大权闭合子图,然后会成傻逼。 为了方便,就把一个警卫能够看到的范围处理一下(把坐标系处理一下),强制让他看到一个的夹角,再旋转一下就可以变成强制看到右下角的范围。 我们知道最
阅读全文
摘要:【BZOJ3874】[AHOI&JSOI2014]宅男计划(贪心,三分) 题面 "BZOJ" "洛谷" 题解 大力猜想一最长的天数和购买外卖的总次数是单峰的。感性理解一下就是买次是,买次也是,在中间某次可能取到最优值。然而这样子可能是多峰的,所以也可以退火处理。 现在假装
阅读全文
摘要:【BZOJ5321】[JXOI2017]加法(贪心) 题面 "BZOJ" "洛谷" 题解 显然二分答案,算一下每个点至少要覆盖的次数。从左往右考虑如果这个点覆盖次数不够,就会选择覆盖这个点的、右端点最大的线段,拿个堆维护一下就好了。
阅读全文
摘要:【BZOJ3174】[TJOI2013]拯救小矮人(贪心,动态规划) 题面 "BZOJ" "洛谷" 题解 我们定义一个小矮人的为它的逃跑能力。 我们发现,如果有两个小矮人,逃跑能力$x include include include using namespace std
阅读全文
摘要:【BZOJ3613】[HEOI2014]南园满地堆轻絮(贪心) 题面 "BZOJ" "洛谷" 题解 考虑二分的做法,每次二分一个答案,那么就会让所有的值尽可能的减少,那么扫一遍就好了。 考虑如何做到线性,那么发现二分完了之后每个值都对应着一段区间,现在问题就是从左往右有一堆区间,你要在区
阅读全文
摘要:【Luogu3602】Koishi Loves Segments(贪心) 题面 "洛谷" 题解 离散区间之后把所有的线段挂在左端点上,从左往右扫一遍。 对于当前点的限制如果不满足显然会删掉右端点最靠右的那根,拿一个堆维护一下就好了。
阅读全文
摘要:[复习]动态dp 你还是可以认为我原来写的动态dp就是在扯蛋。 "[Luogu4719]【模板】动态dp" 首先作为一个题,我们显然可以每次修改之后都进行暴力,设表示当前考虑及其子树内的点,当前这个点是选还是不选时能够得到的最大权值,那么我们可以得到转移:
阅读全文
摘要:【BZOJ4911】[SDOI2017]切树游戏(动态dp,FWT) 题面 "BZOJ" "洛谷" "LOJ" 题解 首先考虑如何暴力,设表示当前以节点为根节点,联通子树权值和为的方案数,转移就是的卷积,最后只需要把所有的全部加起来就
阅读全文
摘要:李超线段树 因为太弱了,所以只会用单调队列、CDQ分治、平衡树来维护凸壳,然后被聚聚在博客底下给D了一顿,所以辣鸡yyb就来学一下了。 (似乎整个机房就我不会了) 首先先明白这个东西在干啥 你要资磁动态维护一个平面直角坐标系,资磁在中间插入一条线段,资磁询问与这
阅读全文
摘要:【BZOJ3165】[HEOI2013]Segment(李超线段树) 题面 "BZOJ" "洛谷" 题解 似乎还是模板题QwQ
阅读全文
摘要:【BZOJ1568】[JSOI2008]Blue Mary开公司(李超线段树) 题面 "BZOJ" "洛谷" 题解 是模板题啊。 cpp include include using namespace std; define MAX 50050 define lson (now 1; double
阅读全文
摘要:[复习]斜率优化 好久没写过了,跟忘了没啥区别了。 然后重新理解一遍这个东西,感觉我原来对于斜率优化的想法有着很大的问题。 所以这些东西举例子重新推一推吧QwQ。 "[HNOI2010]玩具装箱" 首先写暴力的转移,设是的前缀和。 $$f[i]=\min_{j=0
阅读全文
摘要:Codeforces Round 543 Div1题解 "Codeforces" A. Diana and Liana 给定一个长度为的序列,你可以从中删去不超过个元素,剩下的元素从左往右每个一组,最后一组可以不满。给定你一个大小为的可重集,要求你分出的组中至少有
阅读全文
摘要:【BZOJ5197】Gambling Guide (最短路,期望) 题面 "BZOJ权限题" "洛谷" 题解 假设我们求出了每个点的期望,那么对于一个点,只有向期望更小的点移动的时候才会更新答案。 即转移是:$\displaystyle f[u]=\frac{\sum_{v,(u,v)\in E}m
阅读全文
摘要:【BZOJ2817】[ZJOI2012]波浪(动态规划) 题面 "BZOJ" "洛谷" 题解 首先这个差值最大也就是级别的。 那么这样子就可以压进状态啦。 我们把这个操作看成一个个加数的操作,按照从小往大的顺序依次把每个数放到一个合法的格子上面去,那么对于先放的数,对于答案的贡献就是负的,
阅读全文
摘要:Codeforces Round 545 Div1 题解 来写题解啦QwQ ~~本来想上红的,结果没做出D。。。。~~ A. Skyscrapers "CF1137A" 题意 给定一个的网格,每个格子里都有一个数,对于任意一行和任意一列,要求把这个数重新用正整数编号,并且对于
阅读全文
摘要:【BZOJ3601】一个人的数论(数论) 题面 "BZOJ" 怎么这图片这么大啊。。。 题解 要求的是 然后把给拆了,$\displaystyle \sum_{i=1}^n i^d\sum_{x|i
阅读全文
摘要:【BZOJ3561】DZY Loves Math VI (数论) 题面 "BZOJ" 题解 $$\begin{aligned} ans&=\sum_{i=1}^n\sum_{j=1}^m\sum_{d=1}^n "gcd(i,j)=d" ^d\\ &=\sum_{d=1}^nd^d\sum_{i=1
阅读全文
摘要:【CF833E】Caramel Clouds(线段树) 题面 "CF" "洛谷" 题解 首先把区间一段一段分出来,那么只有四种情况。 要么没有被任何一朵云被覆盖,那么直接就会产生这一段的贡献。 要么被一朵云覆盖,要么被两朵云覆盖。 要么被三朵及以上的云所覆盖,那么这段的贡献永远取不到。 对于每朵云预
阅读全文
摘要:【CF833D】Red Black Cobweb(点分治) 题面 "CF" 有一棵树,每条边有一个颜色(黑白)和一个权值,定义一条路径是好的,当且仅当这条路径上所有边的黑白颜色个数a,b满足2min(a,b) =max(a,b),一条路径的权值为路径上所有边的权值的乘积,求所有好的路径的权值乘积.
阅读全文
摘要:【WC2018】即时战略(动态点分治,替罪羊树) 题面 "UOJ" 题解 其实这题我也不知道应该怎么确定他到底用了啥。只是想法很类似就写上了QwQ。 首先链的部分都告诉你要特殊处理那就没有办法只能特殊处理了QWQ。 首先听说有一种均摊的做法。 即每次随便一个点,
阅读全文
摘要:【CF809D】Hitchhiking in the Baltic States(Splay,动态规划) 题面 "CF" "洛谷" 题解 朴素:设表示当前考虑到第个元素,结尾位置是的最大选择数。 然而这样就很呆。 换个状态:设表示当前考虑到第$
阅读全文
摘要:【BZOJ4408】[FJOI2016]神秘数(主席树) 题面 "BZOJ" "洛谷" 题解 考虑只有一次询问。 我们把所有数排个序,假设当前可以表示出的最大数是。 起始。 依次考虑接下来的每个数,如果,那么没有啥问题,。 如果$a_i=
阅读全文
摘要:【BZOJ1831】[AHOI2008]逆序对(动态规划) 题面 "BZOJ" "洛谷" 题解 显然填入的数拎出来是不降的。 那么就可以直接大力。 设表示当前填到了,上一个填的数是的最小逆序对数。 随便拿什么维护一下转移就好了。 cpp include incl
阅读全文
摘要:【agc030f】Permutation and Minimum(动态规划) 题面 "atcoder" 给定一个长度为的残缺的排列,定义,求有多少种不同的。 题解 考虑这个的取值是两两配对之后求,所以我们把所
阅读全文
摘要:【BZOJ3167】[HEOI2013]SAO(动态规划) 题面 "BZOJ" "洛谷" 题解 显然限制条件是一个(不考虑边的方向的话就是一棵树了)。 那么考虑树型,设表示当前点在其子树内的排名为的方案数。 每次考虑加入一棵子树,即考虑把$f[v][k
阅读全文
摘要:【CF802C】Heidi and Library(网络流) 题面 "CF" "洛谷" 题解 ~~前面两个Easy和Medium都是什么鬼玩意啊。。。。~~ 不难发现如果这天的要求就是第种书的话,那么是必定要存在的。 把每种书拆次,然后用每一个流维护一个书架上的位置,那么这
阅读全文
摘要:【CF671D】Roads in Yusland(贪心,左偏树) 题面 "洛谷" "CF" 题解 无解的情况随便怎么搞搞提前处理掉。 通过严密(大雾)地推导后,发现问题可以转化成这个问题: 给定一棵树,每条边可以被标记若干次,有若干个限制,每次限制一条链上所有边被覆盖的总次数不能超过一个给定值,现在
阅读全文
摘要:【BZOJ2324】[ZJOI2011]营救皮卡丘(网络流,费用流) 题面 "BZOJ" "洛谷" 题解 如果考虑每个人走的路径,就会很麻烦。 转过来考虑每个人破坏的点集,这样子每个人可以得到一个上升的序列。 预处理表示在不经过标号大于$max\
阅读全文
摘要:【BZOJ3691】游行(网络流) 题面 "BZOJ" 然而权限题。 Description 每年春季,在某岛屿上都会举行游行活动。 在这个岛屿上有N个城市,M条连接着城市的有向道路。 你要安排英雄们的巡游。英雄从城市si出发,经过若干个城市,到城市ti结束,需要特别注意的是,每个英雄的巡游的si可
阅读全文
摘要:【CF908G】New Year and Original Order(动态规划) 题面 "洛谷" "CF" 题解 设表示当前填到了第位,有个大于等于的数,是否卡到上界的方案数。 这个东西算完之后,等价于默认排好序了。 看起来可以枚举每个数字出现在
阅读全文
摘要:【CF809C】Find a car(动态规划) 题面 "洛谷" "CF" 有一个无穷大的矩阵,第行第列的数是,次询问,每次询问一个矩形内数小于等于的数的和。 题解 询问等价于$\sum_{i=l}^r\sum_{j=L}^R [i\oplu
阅读全文
摘要:【arc073e】Ball Coloring(线段树,贪心) 题面 "AtCoder" "洛谷" 题解 ~~大型翻车现场,菊队完美压中男神的模拟题~~ 首先钦定全局最小值为红色,剩下的袋子按照其中较大值排序。 枚举前面连续的一段是什么颜色,那么此时我们就知道了两种颜色的,那么只需要考虑蓝色
阅读全文
摘要:【arc073f】Many Moves(动态规划,线段树) 题面 "atcoder" "洛谷" 题解 设表示第一个棋子在,第二个棋子在的最小移动代价。 发现在一次移动结束之后,总是有一个棋子会动到当前位置,因此状态改为当前是第次操作,第次操作没有动的那个棋子
阅读全文
摘要:【CF1082F】Speed Dial(动态规划) 题面 "CF" "洛谷" 题解 把树建出来之后发现就是一个树型,每个点会对于其父亲中第一个被标记的点产生贡献。 那么把第一个点压入状态。 设表示当前点,其到根的链上第一个被标记的点是,其子树内
阅读全文
摘要:【agc013d】Piling Up(动态规划) 题面 "atcoder" "洛谷" 有个球,颜色为黑白中的一种,初始时颜色任意。 进行次操作,每次操作都是先拿出一个求,再放进黑白各一个,再拿出一个球。 求最终拿出球的序列的方案数。 题解 首先可以把操作看成每次拿出一个球把它染上任意一种
阅读全文
摘要:【arc071f】Infinite Sequence(动态规划) 题面 "atcoder" "洛谷" 题解 不难发现如果两个不为的数连在一起,那么后面所有数都必须相等。 设表示的填法数,初值 考虑转移, 首先可以这里填上一个大于$
阅读全文
摘要:Codeforces Round 542 (Div. 1) 似乎是一周前的比赛了QwQ,然而立过flag要每周写一场来着,就来补一补QwQ。 A1/A2. Toy Train 翻译 有个点排成一圈,有个货物,第个货物要从运到,在每个车站只能装一个货物,求从第$i
阅读全文
摘要:【UOJ 236】[IOI2016]railroad(欧拉回路,最小生成树) 题面 "UOJ" 题解 把速度看成点,给定的路段看成边,那么现在就有了若干边,然后现在要补上若干边,以及一条使得原图存在欧拉回路,那么就变成了求从大往小连边的边长的最小值。 而欧拉回路每个点被来回覆盖的次数左
阅读全文
摘要:【CF429E】Points and Segments(欧拉回路) 题面 "CF" "洛谷" 题解 欧拉回路有这样一个性质,如果把所有点在平面内排成一行,路径看成区间的覆盖,那么每个点被从左往右的覆盖次数等于从右往左的覆盖次数。 发现这题很类似上面这个东西。 将向连边,但是不能直接做
阅读全文
摘要:【UOJ 177】欧拉回路 题面 "UOJ" 题解 首先图不连通就没啥好搞的了。 对于无向图而言,每个点度数为偶数。 对于有向图而言,每个点入度等于出度。 然后就是一本通上有的做法,直接一遍就好了。。 cpp include include using namespace std; def
阅读全文
摘要:【LOJ6036】编码(2 sat) 题面 "LOJ" 题解 很显然的一个暴力: 枚举每个串中的 是什么,然后把和它有前缀关系的串全部给找出来,不合法的连边处理一下,那么直接跑就做完了。 现在的问题就在与不合法的数量可能会很多,所以需要优化这个连边的过程。 显然前缀关系和树
阅读全文
摘要:【BZOJ4331】[JSOI2012]越狱老虎桥(Tarjan) 题面 "BZOJ" 然而BZOJ是权限题QwQ "洛谷" 题解 先求出所有割边,那么显然要割掉一条割边。 如果要加入一条边,那么显然是把若干条割边串起来,使得这些割边不能被割掉。 那么把割边求出来之后,按照权值从小到大考虑所有割边,
阅读全文
摘要:【Nowcoder71E】组一组(差分约束,最短路) 题面 "Nowcoder" 题解 看到二进制显然就直接拆位,那么区间的按位或和按位与转成前缀和之后,可以写成两个前缀和的值的差的大小关系,那么直接差分约束就好了。 注意几个细节,首先相等是要两侧都要连边,不要直连了一侧;然后这题卡常,所以对于区间
阅读全文
摘要:【CodeChef】Querying on a Grid(分治,最短路) 题面 "Vjudge" "CodeChef" 题解 考虑分治处理这个问题,每次取一个,对于上的三个点构建最短路径树(因为保证了最短路唯一所以是树)。 如果两点之间的最短路径跨越了,那么必定有$di
阅读全文
摘要:【BZOJ4061】[Cerc2012]Farm and factory(最短路,构造) 题面 "BZOJ" 然而权限题QwQ。 题解 先求出所有点到达的最短路,不妨记为。 那么假设新点是,任意一个点。 那么可以得到几个不等式:$d_{u,1}
阅读全文
摘要:【AtCoder3611】Tree MST(点分治,最小生成树) 题面 "AtCoder" "洛谷" 给定一棵个节点的树,现有有一张完全图,两点之间的边长为,其中表示树上两点的距离。 求完全图的。 题解 首先连边的这个式子可
阅读全文
摘要:【AtCoder2134】ZigZag MST(最小生成树) 题面 "洛谷" "AtCoder" 题解 这题就很鬼畜。。 既然每次连边,连出来的边的权值是递增的,~~所以拿个线段树xjb维护一下就可以做了~~。那么意味着只有前面的点集被连在一起之后才可能选择后面的边,因此我们可以强制修改一下边的连接
阅读全文
摘要:【CF891C】Envy(最小生成树) 题面 "Codeforces" "洛谷" 题解 考虑的构建过程,对于所有权值相同的边一起考虑。 显然最终他们连出来的结果是固定的。 把连边改为把联通块联通,这样子只需要检查询问中的权值相同的边连接这些联通块是否会成环。 并查集解决即可。 cpp in
阅读全文