摘要:
测试地址:会议中心 做法:本题需要用到贪心+倍增+set。 如果这题单纯只求最多的线段数,相信大家都会贪心求了,但是鉴于我太弱今天才会,这里还是写一下吧。 把所有线段按左端点从小到大排序,按右端点为第二关键字从大到小排序,我们首先维护一个栈,是为了把所有包含... 阅读全文
摘要:
测试地址:优秀的拆分 做法:本题需要用到后缀数组+RMQ+差分。 容易想到,令pre(i),nxt(i)" role="presentation" style="position: relative;">pre(i),nxt(i)pre(i),nxt(i)分... 阅读全文
摘要:
测试地址:萌萌哒 做法:本题需要用到并查集+倍增。 容易想到用并查集来维护相等的集合,因为首位不能为0" role="presentation" style="position: relative;">00,所以令集合数为s" role="presentat... 阅读全文
摘要:
测试地址:连通数 做法:本题需要用到SCC+DP+bitset。 看到和有向图的连通性有关就想到用SCC缩点,对于缩出来的DAG,一个直观的想法就是DP,大多数同学应该会马上想到这样的状态定义:令f(i)" role="presentation" style... 阅读全文
摘要:
测试地址:单旋 做法:本题需要用到set+树状数组。 首先,我们注意到题目中单旋只涉及到最小值和最大值,考虑到旋转是对称的,我们先只考虑单旋最小值的情况。 显然目标点每次都是往右旋转,往右旋转对点的影响是:该点的右子树深度没有影响,该点深度减少1" role... 阅读全文
摘要:
测试地址:蚯蚓排队 做法:本题需要用到链表+字符串哈希。 因为k" role="presentation" style="position: relative;">kk很小,所以用链表维护队列的形态,每次连接或断开暴力添加新增的子串信息即可,用字符串哈希来加... 阅读全文
摘要:
测试地址:游戏 做法:本题需要用到2-SAT+枚举。 看到大部分的地图都只能用两种赛车,赛车之间有一些依赖关系,这显然就是个2-SAT。而对于极少数的能用三种赛车的地图,我们枚举这些地图是不用A还是不用B,这样可以保证不漏掉方案,对每种情况做2-SAT即可,... 阅读全文
摘要:
测试地址:LIS 做法:本题需要用到最小割+贪心+退流。 如果仅仅是求最小代价,就是很经典的模型了,令f(i)" role="presentation" style="position: relative;">f(i)f(i)为以第i" role="pres... 阅读全文
摘要:
测试地址:网络收费 做法:本题需要用到树形DP+状压DP。 因为成对的贡献比较难做,我们尝试把贡献算到每一个叶子节点上。我们发现按照题目中的收费方式,它等价于对于每棵子树,A和B哪个更少,就统计这样的贡献:对于每个这种用户i" role="presentat... 阅读全文
摘要:
测试地址:循环之美 做法:本题需要用到杜教筛。 首先,思考一下纯循环小数这个条件有什么意义。注意到,如果一个数w" role="presentation" style="position: relative;">ww的循环节长度为x" role="prese... 阅读全文