[LUOGU] P2134 百日旅行

很多dalao用的DP

但是贪心完全是可行的。

枚举一下有多少天请小红吃饭,然后贪心的把旅行的天数尽量平均分开即可。

#include <iostream>
#include <climits>
#include <cstdio>
#include <cstring>
using namespace std;
long long n,p,q,ans;
int main() {
    scanf("%lld%lld%lld",&n,&p,&q);
    ans=LONG_LONG_MAX;
    for(int i=0,a,b;i<=n;i++) {
        a=(n-i)/(i+1),b=(n-i)%(i+1);
        ans=min(ans,i*q+p*(i+1-b)*a*a+p*b*(a+1)*(a+1));
    }
    cout<<ans<<endl;
    return 0;
}
百日旅行

 

posted @ 2018-10-16 15:40  SWHsz  阅读(84)  评论(0编辑  收藏  举报