随笔分类 - A.题目难度—紫题
摘要:题意简述:给定一颗个点边带权的树,再给定条链,问将树上的某条边权值改为0后,这些链中最长的至少有多长。 由于答案显然具有单调性,因此可以考虑二分答案。 二分答案后就变成了这样一个问题:将一条边的边权变为0后,是否可以让所有m条路径中每条的权值都小于; 这个问题乍一看还是没啥思路
阅读全文
摘要:NOIP2016D1T2...... 我连D1T2都需要看题解才能做了...... AFO...... 题目传送门 解析: 考虑有一个玩家,其起点为,终点为。 则其路径可以分成两部分,一部分为,另一部分为 对于前半部分,可以对点x(x在
阅读全文
摘要:树上莫队模板题。 使用欧拉序将树上路径转化为普通区间。 之后莫队维护即可。不要忘记特判LCA 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #
阅读全文
摘要:考虑模拟退火。 题目要我们找到一个点,使得整个系统平衡。 这个要求等价于让我们找到一个点,使得系统总能量最小。 我们退火出一个点,然后计算其能量即可。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<alg
阅读全文
摘要:毒瘤莫队卡常题,卡了一早上的常数,才开O2勉强过。 带修莫队模板题。 普通莫队要离线下来做,遇到这种带修改的题目直接就萎了,但是全国广大的OIer们在莫队的基础上,发明了带修莫队这种玄学算法。 具体来说就是给修改和求值打上时间戳,然后在普通莫队双指针的基础上增加一个指针tim指向时间,在这一个维度上
阅读全文
摘要:题目传送门 维护一个区间内不同数的个数,最直观的想法是直接排序后用树状数组维护即可。但是我们发现n只有3e4,于是我们想到了可以拿一个的莫队维护。关于莫队算法如果有不知道的或者不会写的,建议看一看这位大佬的博客 1 #pragma GCC optimize(3) 2 #i
阅读全文
摘要:考虑二分答案+可持久化线段树。 对于这种最大化最小值的问题,通常使用二分来解决。于是我们想到了对果汁按其d值排序。然后使用下标为费用的一棵可持久化线段树来维护费用。 check函数可以这样写:如果我们发现以mid为根的线段树本身还不够li升,就可以直接返回0了,否则贪心地查询其最小花费,如果也符合要
阅读全文
摘要:CDQ用来解决分治时左半部分对右半部分造成影响的问题。 CDQ分治的经典问题是三维偏序问题。 要想解决三维偏序问题,首先你要知道什么是偏序。(废话) 一维偏序: 给出直线上的n个点,问有多少对点满足xi<=xj 对于这个问题,直接排序就可以了。 二维偏序: 给定平面内的n个点,问有多少对点满足xi<
阅读全文
摘要:闲来无事,特意回味一下去年担当NOIPD1T3(防AK却没能防住)之大任的经典好题。 首先看到什么“最短赛道的长度尽可能大”,就知道离不开二分。于是我们想到了一种思路:二分+树上贪心。 二分判定很简单,就是对于二分出来的答案mid,检查树上是否有大于m条不相交的,权值和大于mid的链。而如何凑出尽可
阅读全文
摘要:题目传送门 省选D2T3考板子可真是不多见呢。。。。~~~ 这题就是一个裸的树链剖分,对于每一个Add操作,维护从u至v的路径,对于每一个Query操作,询问以u为根的子树之和。如果不会树链剖分可以看我的往期博客,具体细节在代码之中就不多赘述了~ 下面给出参考代码: 1 #include<iostr
阅读全文
摘要:树链剖分用来解静态树上维护路径信息的问题,例如:给定一颗点带权的树,每次去修改某条路径上所有点的点权,或是求某条路径上的点权之和,当这棵树的形态为一条链时,这实际上就是一个区间修改求和的问题,可以用线段树等数据结构方便地求解。对于其他的情况,由于树的形态不变,因此树链剖分的策略是把这棵树恰当的剖分为
阅读全文
摘要:洛谷上的翻译是真的哲学♂♂♂ 非常van的题目传送门♂♂♂ 个人认为这题充其量也就是个蓝(nan)题,首先处理-1的情况,-1的情况是不等式组无解,按照差分约束的规则,无解说明出现了负环,先跑一遍以0为源点的SPFA判断有无负环即可。再来处理-2的情况,结果为-2就说明1号和n号节点不存在直接的或间
阅读全文
摘要:题目传送门 差分约束系统很棒的应用,首先运用前缀和的思想,令s[k]为0~k中被选出来数的个数,则s[b[i]]>=s[a[i]-1]+c,这样会有一个问题,那就是下标可能会出现负数,因此我们可以改变前缀和表示的方法,设s[k]为0~k-1中被选出来的数,则约束条件可以转化为:s[b[i]+1]-s
阅读全文
摘要:题目传送门 评分:省选/NOI-,难度:普及+/提高 这题真的和RMQ没有半点关系,只需要一个裸的线段树,连pushdown都不需要,只需要两种操作:区间修改和区间求最小值,在回溯时加上标记即可,唯一有点思维含量的是对环的处理,如果左端点大于了右端点,就维护(l,n)(1,r),否则正常维护即可,不
阅读全文
摘要:题目描述 为了提高智商,ZJY开始学习组合数学。某一天她解决了这样一个问题:给一个网格图,其中某些格子有财宝。每次从左上角出发,只能往右或下走。问至少要走几次才可能把财宝全捡完。 但是她还不知足,想到了这个问题的一个变形:假设每个格子中有好多块财宝,而每一次经过一个格子至多只能捡走一块财宝,其他条件
阅读全文