线段树
touwangyi
没有解决不了的难题,只有跑不动的芯片。
展开
-
codeforces #426 div2(The Bakery)834d
题目链接 本菜感觉这个题目真是难,看了好久的题解才懂起,大致题意就是给一个数组,把数组连续的分为k部分,每一部分的值等于这部分不同的数字的个数,要让所有的值加起来最大,问怎样分。首先我们来看一下dp: dp[i][j]dp[i][j]表示前i个数字分成j组的的最优方案,那么很容易就能够得出一个状态转移公式 dp[i][j]=max(dp[t][j−1]+F(t+1,i),j−1<=t<i)dp原创 2017-08-01 21:52:24 · 98 阅读 · 0 评论 -
hdu6070 多校第四场 线段树+二分
看了题解才知道这怎么做,其实之前做过一道类似的线段树的题这里,但是比赛的时候还是没有做出来。根据官方给的题解 其实我们要求的就是这个size(l,r)r−l+1\frac{size(l,r)}{r-l+1} 那么我们令ans=size(l,r)r−l+1ans = \frac{size(l,r)}{r-l+1} 现在就是求一个最小的ans,我们来二分枚举答案,也就是说如果存在:mid>size(原创 2017-08-06 15:55:30 · 292 阅读 · 0 评论