首页 > 其他分享 >Milena and Admirer

Milena and Admirer

时间:2024-03-09 14:55:36浏览次数:22  
标签:拆成 frac Milena 题解 Admirer 我们 DP

看这篇题解

这题没有发现什么好的与题目有关的性质,所以很可能是考算法,而一般是DP和贪心,B题一般不会考DP,所以一般是贪心

我们用数学归纳法来证明

要么从前往后考虑,要么从后往前考虑。这里就像题解一样从后往前考虑了

假设我们已经按照最佳的方案把后面的数都拆了,考虑当前的数\(a\),和这个数后面的一个数\(b\)

如果\(a<b\),那么肯定不用拆。因为拆了不仅会增加次数,而且会让之后的数更小(指的是下一次的\(b\)更小),这样显然不优,因为这样的话,下一次的\(a\)的选择空间就更小了

如果\(a>b\),那么我们至少要拆成\(x=\lceil \frac{a}{b}\rceil\)份。如果我们拆成更多份,根据上面的分析,我们不仅会增加次数,而且会让后面的\(b\)更小,肯定不优。所以我们就是要拆成\(x\)份。而我们肯定是让这\(x\)份中最小的数越大越好。显然最大是\(y=\lfloor\frac{a}{x}\rfloor\)。而如果我们最小的数是这么多,我们把剩下的从后往前依次放,最终放成这个样子

标签:拆成,frac,Milena,题解,Admirer,我们,DP
From: https://www.cnblogs.com/dingxingdi/p/18062706

相关文章

  • Milena and Admirer
    引言题目链接:https://codeforces.com/contest/1898/problem/B思路首先根据题目要求,要求操作后的数组是非递减数组,所以只能从后向前遍历数组进行操作对于当前需要进行操作的\(a_i\)来说一定是使其分解出来的数尽可能相等的做法是最优方案那么对于\(a_i,a_{i+1}\)来说,假设......
  • CF1898 B Milena and Admirer 题解
    LinkCF1898BMilenaandAdmirerQuestion给出一个长度为\(n\)的序列\(a\),我们可以做一种操作使得\(a\)非降,操作是:对于一个\(a_i\)选择一个整数\(0\lex\lea_i\),用两个数\(x,(a_i-x)\)来替换\(a_i\)。求最小操作次数。Solution考虑哪些数是需要操作的,如......