神题-_-
文章平均质量分 71
neither_nor
这个作者很懒,什么都没留下…
展开
-
BZOJ1071 [SCOI2007]组队
这题好神…… 上学期某天和ljss做了这题,前两天commonc做,结果我俩都只记得这是一道神题……看了会代码终于想起来自己当时觉着这题神就是因为用俩指针扫了俩数组一个添加一个删除还能不重不漏 我们先把数组复制一遍,同时给每个运动员一个sum值代表A*h+B*s,a数组按h排序,b数组按sum排序 按任意顺序枚举v的最小值,不妨直接在a数组里枚举 对于每次外层枚举,令l和r=0 然后在a原创 2016-04-29 15:21:41 · 1322 阅读 · 0 评论 -
BZOJ4543/BZOJ3522 [POI2014]Hotel加强版
这题真TM神…… 和commonc一起orz了半天题解-_- 我们考虑一下dp,f[i][j]表示以i为根的子树里与i距离为j的点的个数,g[i][j]表示以i为根的子树里有这么多个点对在底下分叉了,并且还没有第三个点和这个点对匹配,这个第3个点不在i的子树里并且与i距离为j的方案数(不考虑第三个点有多少种选法)、 设x表示当前点,y表示儿子 f[x][0]=1 ans+=g[x][0]原创 2016-04-29 07:33:05 · 4447 阅读 · 3 评论 -
BZOJ3917 [Baltic2014]sequence
这题好神-_- 我们考虑对序列里的每一个数a[i],求一个集合s[i],代表a[i]中必须出现的数字集合 初始的时候每个s[i]里都只有输入的那个数 我们另x[i]=a[i]/10(整除)y[i]=a[i]%10(即a[i]的个位) 然后我们枚举第一个数的个位,即y[1],y[1]确定后所有的y就都确定了,然后如果s[i]中包含了y[i],那么就可以从s[i]中删掉y[i] 我们知道数列原创 2016-09-21 10:08:47 · 821 阅读 · 0 评论 -
BZOJ1367 [Baltic2004]sequence
这题真是挺tmd神啊 先考虑构造单调不降序列 对于原串中的一个单调下降的区间,肯定是中位数比较优 那么我们把序列化成一个个下降的区间 每次新加进来一个数单算一个区间,然后不断把最后一个区间和倒数第二个合并,还是取中位数,直到最后一个区间的中位数大于等于倒数第二个区间的 用一个可并堆维护中位数即可,只需要保留小于等于中位数的数 对于构造单调上升序列的情况,可以把原序列里的第i个减i 牛原创 2017-02-24 15:18:43 · 846 阅读 · 0 评论