TOJ 4095: love168yk的选美大赛
4095: love168yk的選美大賽?
Time Limit(Common/Java):1000MS/3000MS ? ? Memory Limit:65536KByteTotal Submit: 51 ? ? ? ?? ? Accepted:7
Description
?
話說最近love168yk參加了數信學院的選美大賽,跟他同臺參加的還有N-1位MM,love168yk自知沒有多大希望贏得比賽,但是他又不想這么早就被淘汰(分數最低就被淘汰),只要每個人的分數一樣他就熬過第一輪預選賽了,分數是由兩部分組成的,一部分是裁判給的分數,另一部分是觀眾給的,每個人一開始都有裁判給的分Ji,分數層次不齊,接著觀眾投票階段就看觀眾對于選手的支持率Yi了,觀眾的支持率按百分比來算,且每個觀眾最多給一位選手投票,也就是說總的支持率加起來剛好是1,總分是選手得到的裁判分+觀眾支持率*總裁判分(N個人得到的裁判分總和X)即Ji+Yi*X,分數最低的就淘汰了,現在讓你寫一個程序來,讓你計算出每個選手應得到多少的支持率,滿足不能出現單個最低分數,應為出現了單個最低就將被淘汰,且要滿足每個人得到的支持率最小,且不可能出現裁判總分為0的情況!!!
?
Input
?
測試數據有多組,第一行T表示有T組數據,接下來T行,每行的第一個數字N表示有多少參賽選手,后面跟著N個數據Ji都用空格隔開。2<N<200,? 0>=Ji<=100.
?
Output
?
每組測試數據每行輸出"Case #x: ",接著N個數據分別表示每位選手應得得支持率mi,x從1開始,mi保留兩位小數。
?
Sample Input?
4
2 20 10
2 10 0
4 25 25 25 25
3 24 30 21
Sample Output
?
Case #1: 33.33 66.67
Case #2: 0.00 100.00
Case #3: 25.00 25.00 25.00 25.00
Case #4: 34.67 26.67 38.67
這個題還是比較好的,早上寫了一下wa,下午搬完書回來就在想
最早的貪心過程就是按照權值其實和求全部數的平均數思想一樣,不過是繞了個彎
提交一發wa,然后發現可能有輸出負數的操作,又交了幾發
最后我的貪心過程是選小的數看它們最多能加到多少,然后求下平均數,大數均輸出0.00就好
其實這個題就限制了只能用類似的貪心過程,下面的數相加可能大于100也可能小于100的
#include <stdio.h> #include <algorithm> using namespace std; int a[205],b[205]; int main() {int T;while(~scanf("%d",&T)){int k=1;while(T--){int n,s1=0;scanf("%d",&n);for(int i=1; i<=n; i++){scanf("%d",&a[i]);b[i]=a[i];s1+=a[i];}sort(b+1,b+n+1);int f=n,s=b[1];for(int i=2; i<=n; i++){s+=b[i];if(s+s1<i*b[i]){f=i-1;s-=b[i];break;}}s+=s1;printf("Case #%d:",k++);for(int i=1; i<=n; i++)if(a[i]>b[f])printf(" 0.00");elseprintf(" %.2f",(s*1./f-a[i])*100/s1);putchar(10);}}return 0; }?
?
?
轉載于:https://www.cnblogs.com/BobHuang/p/7469664.html
總結
以上是生活随笔為你收集整理的TOJ 4095: love168yk的选美大赛的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORM简介
- 下一篇: Hadoop何以快速成为最佳网络安全工具