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