摘要: 为什么我怎么看都只会10pts?再看还是只会50~70?只会O(n2(R-L+1))/O(nlogn(R-L+1))……一眼看动态DP可还是不会做…… 根节点的答案是叶子传上来的,所以对于L=R的数据,可以直接枚举需要±n的叶子节点个数num,然后答案就是2num,每次枚举时重新扫描一下就是O(n2 阅读全文
posted @ 2019-05-06 22:38 hfctf0210 阅读(432) 评论(0) 推荐(0) 编辑
摘要: 首先只需要考虑每种牌出现的张数即可,然后判断一副牌是否能胡,可以DP一下,令f[i][j][k][0/1]表示到了第i位,用j次i-1,i,i+1和k次i,i+1,i+2,是否出现对子然后最大的面子数量,j,k∈[0,2],转移也很容易。这样暴力枚举可以获得50pts的“好”成绩。 然后可以丢掉第一 阅读全文
posted @ 2019-05-06 16:04 hfctf0210 阅读(314) 评论(0) 推荐(0) 编辑
摘要: 通过打表证明发现答案就是把序列划分成若干段,每段的b都是这一段a的平均数。50分做法比较显然,就是单调栈维护,每次将新元素当成一个区间插入末尾,若b值不满足单调不降,则将这个区间与单调栈前一个区间合并。 由于题目要求每次只修改一个数,所以可以前后缀拼起来,单调栈要改变,然后发现这个显然满足二分的性质 阅读全文
posted @ 2019-05-06 10:02 hfctf0210 阅读(403) 评论(0) 推荐(0) 编辑