[Codeforces] 476C Greedy Arkady

題目連結:http://codeforces.com/contest/965/problem/C
  在這裡抱怨應該沒關係吧,反正完全沒人看XD,這場從各種意義上都是一個轉折點啊(笑),掉到了歷史上最低分了,之前所積累的心血兩次就全沒了,真的一無所有了,不過換個角度想,也不用怕再失去了(吧)。
  原本我以為會是個凸函數,所以弄了個三分搜來寫,然後就錯了,最後推測有可能是因為圖形並非凸函數吧。
  正解的關鍵是D<=1000,然後由於要算Arkady最多能拿多少,所以就將他視為另外一個人,因此人數就變成了t*k+1了。


#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,k,M,D;
signed main()
{
    cin >> n >> k >> M >> D;
    int ans = 0, d = 1;
    for(int i = 1; i <= D; i++)
    {
        ans = max(ans,min(M,n/d)*i);
        d += k;
    }
    cout << ans << endl;
} 

留言

張貼留言

這個網誌中的熱門文章

Shellshock.io從入門到上手(針對單狙)(沒有圖片、影片版本)

[TIOJ] 1007燈泡問題