2021年-分糖果
[CSP-J 2021] 分糖果 - 洛谷
解題思路:
1.首先,看到數據規模,10的9次方,利用for循環暴力求解的話肯定會超時,不會拿滿分,那么就要分析如何來簡化結構
2.分析情況,要求他剩下的糖果最多,那么最多的時候不會超過n-1,因為一旦超過n-1,則又可以發一輪了,所以最大值為n-1
3.再來分析最小值,最小值就當拿L塊糖果的時候,得到的糖果為L%n,上下限都確定,現在就來分析,最大范圍的R
4.如果L-R中的數k%n一直是單調遞增的,那么R就是應該取的糖果,輸出R%n,如果第一個遞增已經結束了,k%n=n-1,但是k<R,那么也就沒有必要往后遍歷了,最大值已經出現,輸出n-1即可
#include<bits/stdc++.h> using namespace std; int main() {int n,l,r;cin>>n>>l>>r;if(r>=l+n-l%n-1)cout<<n-1;//如果r超過了到達第一個余數為n-1的值,輸出n-1 elsecout<<r%n;//否則沒有到達頂點,r就是最優解 return 0; }
總結
- 上一篇: 200个年轻人的薪资观:真讨厌赚钱,耽误
- 下一篇: 网络安全——使用反弹木马进行提权获取主机