比值排序 奎奎發紅包

2022-05-04 02:06:11 字數 564 閱讀 9974

\(n\)個人,每個人有乙個親密值\(v_\)和等待時間\(t_\),每個人的花費是前面所有人包括自己的等待時間和乘親密值,求所有人花費的最小值

\(0 < n < 100000\)

\(0 \leq v_,t_ \leq 10000\)

考慮有兩個人\(i,j\)的情況

展開後分別是

去掉相同項\(v_ · t_ + v_ · t_\)後為

如果\(v_ · t_ < v_ · t_\)

即\(\frac}} < \frac}}\)

可以得到比值大的在前面得到的總花費最小

#includeusing namespace std;

#define rep(i,a,n) for(int i=a;it.v;

return val>t.val;

}}e[n];

int main( )

sort(e+1,e+n+1);

rep(i,1,n+1)

printf("%lld\n",sum);

return 0;

}

P5104 紅包發紅包

題目的意思是給你乙個 w 元的紅包,第 i 個搶的人的錢數是從0到剩下的錢中隨機的乙個數。然後叫你求第 k 個人搶到錢的期望。顯然答案就是 frac 套上有理數取膜的模板即可求到答案了。注意 這裡的 2 k 不能用1左移,畢竟 k 辣麼大。k 不是小於10啊!看清題目!includeusing st...

Python 簡易發紅包程式

1 固定人數 import random money 100 for i in range 1,10 限制人數 a random.randint 1,10 隨機生成1到10元 money money a print 第 str i 個人,收到 str a 元,剩餘 str money 元 執行結果 ...

PHP 版 群發紅包演算法

面試中的乙個問題,當時在紙上用偽 描述了下實現的原理.回來後用 實現了下.有不完善或需要改進的地方,歡迎拍磚 fwrite stdout,請輸入紅包金額 money fgets stdin 0 if is numeric money money 0.01 echo 紅包金額為 money n fwr...