e356:愛的法則,即是犧牲的法則
e356:愛的法則,即是犧牲的法則
題目連結:e356:愛的法則,即是犧牲的法則
題意:
總共有n個人,每個人都有一個評價分數,但是只有在你見過他/她時才會知道分數如何。
你可以選擇跟他/她結婚或是拒絕,且你做的決定是不可逆的。
你可以假設評價分數不會重複。
請問你要怎麼讓你"結到最好評價的人"的機率最大化呢?
以下提供一個策略:
選定一個犧牲樣本區間[1,r],設犧牲樣本中最好的評價為C,再從[r+1,n]中選第一個評價大於C的人。(如果都沒有則都不選,一輩子單身。
然而機率總隨著r的更動而有變化。
現在把n固定為9230000,請輸出正確的r讓你找到真愛的機率最大化!
評測會先產生一不重複隨機數列(每次送出都不一樣),然後按照上面的策略選一個數,如果選中的是最大的數則AC,否則WA。
解法:
標準的秘書問題
最好的 r 為 9230000/e≒3395527
time:2.2s
memory used:70.8MB
code:
- #include<iostream>
- #define e 2.718281828
- using namespace std;
- int main(){
- cout<<(int)(9230000/e)<<'\n';
- }
本人的分享到此結束
若有更好的想法或建議,請在留言區留言喔
Comments
Post a Comment