TOJ 4095: love168yk的选美大赛
4095: love168yk的选美大赛
Total 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[],b[];
int main()
{
int T;
while(~scanf("%d",&T))
{
int k=;
while(T--)
{
int n,s1=;
scanf("%d",&n);
for(int i=; i<=n; i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
s1+=a[i];
}
sort(b+,b+n+);
int f=n,s=b[];
for(int i=; i<=n; i++)
{
s+=b[i];
if(s+s1<i*b[i])
{
f=i-;
s-=b[i];
break;
}
}
s+=s1;
printf("Case #%d:",k++);
for(int i=; i<=n; i++)
if(a[i]>b[f])
printf(" 0.00");
else
printf(" %.2f",(s*./f-a[i])*/s1);
putchar();
}
}
return ;
}
最新文章
- js笔记
- multiwii 2.4配置页面中文注释
- EXISTS语句
- php Curl_setop 的学习
- URAL(DP集)
- C++11内存模型的一些补充阅读材料
- c++内存管理错误记录
- 《JAVA与模式》之简单工厂模式
- openlayer的凸包算法实现
- Unity StrangeIoC HelloWorld
- layui-xtree 设置单选框,只能选一个
- 【原创】ucos信号量的操作及原理
- c++入门之浅拷贝和深拷贝
- C#异常断电后重新启动项目出现配置未初始化错误
- ARCSDE直连Oracle时出现错误Failed to connect to the specified server. Underlying DBMS error[ORA-12154: TNS:could not resolve the connect identifier specified. No extended error]
- 开启Unity3D之旅
- Python 数据处理库 pandas
- 【Java并发编程】之四:守护线程与线程阻塞的四种情况
- hibernate 启动和辅助类实现资源的重复使用
- getParameter的用法及含义