This way 题意: 给你n个数,每个数都是1-n之间且没有两个数相同,一个区间是特殊的如果它的左端点的值+右端点的值=这个区间中最大的值。问你有多少个特殊的区间。 题解: 我看到data structure就在想线段树,CDQ当然也想过,想不出来。问了一下别人,她用一下子就想出来了,非常的敢单,反思一下自己还是太习惯套路了,都没有怎么用别的方法去做过。那么这道题就是for一遍从大到小
This way 题意: 给你一棵树,每个边都是1或者0,我们称<x,y>是有效的如果从x到y的路上如果经过1的边,那么在之后就不会经过0的边,问你有多少种有效的二元组,注意<x,y>与<y,x>是不一样的。 题解: 一眼题,几乎就是树形DP的模板。 总共大概分为4种状态: 00表示从这里开始连续的0的个数 01表示从这里开始连续的0之后连续1的个数 10表示这里开始连续的1之后连续的0的
This way 题意: 给你n个数,让他们两两配对,要求每个数最多只有一个数与它匹配,并且两个数的差>=z,问你最大有多少对数可以匹配 题解: 非常敢单,但是有一些细节问题要注意一下。 首先我是先排序,再用lower_bound来做,但是lower_bound的时候要注意每个数只能找后半部分的数,因为找前面的数会出现一个问题:假设有1,10,15,20这四个数,z是9,那么如果lower