"巴卡斯杯" 中国大学生程序设计竞赛 - 女生专场(重现) HDU 5704
2016-05-28 21:53
483 查看
Luck Competition
[b]Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 11 Accepted Submission(s): 6
[/b]
[align=left]Problem Description[/align]
Participants of the Luck Competition choose a non-negative integer no more than 100 in their mind. After choosing their number, let
K
be the average of all numbers, and M
be the result of K×23.
Then the lucky person is the one who choose the highest number no more than
M.
If there are several such people, the lucky person is chosen randomly.
If you are given a chance to know how many people are participating the competition and what their numbers are, calculate the highest number with the highest probability to win assuming that you're joining the competition.
[align=left]Input[/align]
There are several test cases and the first line contains the number of test cases
T(T≤10).
Each test case begins with an integer N(1<N≤100),
denoting the number of participants. And next line contains
N−1
numbers representing the numbers chosen by other participants.
[align=left]Output[/align]
For each test case, output an integer which you have chosen and the probability of winning (round to two digits after the decimal point), seperated by space.
[align=left]Sample Input[/align]
3
4
1 2 3
4
1 1 2
4
20 30 40
[align=left]Sample Output[/align]
1 0.50
0 1.00
18 1.00
[align=left]Source[/align]
"巴卡斯杯"
中国大学生程序设计竞赛 - 女生专场
[align=left]Recommend[/align]
liuyiding | We have carefully selected several similar problems for you: 5711 5710 5709 5708 5700
水题 瞎JB模拟
#include <iostream>
#include <cmath>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
//void printf(int begin,int end,int mid)
//{
// int i;
// if(begin>end)
// return;
// for(i=begin; i<=end; i++)
// if(b[i]==a[mid])
// break;
// printf(begin,i-1,mid+1); //中序,先左,后跟,再右。此时i为跟节点,左子树必定在begin到i-1里面。
// printf(i+1,end,mid-begin+i+1);//中序,先左,后跟,再右。此时i为跟节点,右子树必定在i+1到end里面。
// cout<<a[mid];
// if(mid==1)
// cout<<endl;
// else
// cout<<" ";
//}
//struct node
//{
// int id;
// char s[1000];
//};
//bool cmp(node a,node b)
//{
// return a.id>b.id;
//}
//char s[1005][1005];
//int dir[4][2]= {1,0,-1,0,0,1,0,-1};
//char g[5]= {"girl"};
//char c[5]= {"cat"};
//int n,m;
//int dfs1(int x,int y,int cnt)
//{
// int i;
// if(x<0 ||y<0 ||x>=n ||y>=m)
// return 0;
// if(s[x][y]!=g[cnt])
// return 0;
// if(cnt==3)
// return 1;
// int res=0;
// for(i=0; i<4; i++)
// {
// int dx=x+dir[i][0];
// int dy=y+dir[i][1];
// res+=dfs1(dx,dy,cnt+1);
// }
// return res;
//}
//int dfs2(int x,int y,int cnt)
//{
// int i;
// if(x<0 ||y<0 ||x>=n ||y>=m)
// return 0;
// if(s[x][y]!=c[cnt])
// return 0;
// if(cnt==2)
// return 1;
// int res=0;
// for(i=0; i<4; i++)
// {
// int dx=x+dir[i][0];
// int dy=y+dir[i][1];
// res+=dfs2(dx,dy,cnt+1);
// }
// return res;
//}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int i;
int n;
cin>>n;
int ans[105];
memset(ans,0,sizeof(ans));
int sum=0;
for(i=0; i<n-1; i++)
{
int x;
cin>>x;
sum+=x;
ans[x]++;
}
for(i=100; i>=0; i--)
ans[i]+=ans[i+1];
int id;
int res=343434;
int eee;
for(i=0; i<=100; i++)
{
int op=i+sum;
op=op*2/(3*n);
if(i<=op &&(i+1>op || ans[i+1]==0)) //前面没人,i为最接近op的。
{
if(ans[i]-ans[i+1]<=res)
{
id=i;
res=ans[i]-ans[i+1];
eee=ans[i];
}
}
}
// cout<<eee<<endl;
// cout<<res<<endl;
// cout<<1.0/(eee+1)<<endl;
printf("%d %.2lf\n",id,1.0/(res+1));
}
}
相关文章推荐
- 递归
- 中国剩余定理的解析及记忆(扩展欧几里得算法的运用)
- 素数表的快速建立,合数分解,1-2^31内某个长度小于10w的区间素数筛选的三个模板及解析
- 线段树3种基础模型的理解和记忆(任意区间求和,任意区间的所有数加上相同数(懒操作),任意区间所有数变成同一个值再求和)
- ZOJ 1610 Count the Colors 多次更新一次查询,只需要一一标记
- POJ 3264 Balanced Lineup 查询区间最大最小值 基础线状树水题
- HDU 1698 Just a Hook 线状树经典模型之区间变动bool标记,上下同时更新
- POJ 3468 A Simple Problem with Integers(线状树经典模型之lazy操作)
- POJ 2251 Dungeon Master 比较有趣的三维迷宫bfs搜索路径
- 论Acmer的自我修养 (算法学习目标和推荐题目)
- HDU 1260 Tickets (很简单的基础DP题,找到状态转移方程就直接AC了)
- HDU 1176 免费馅饼 (类似于数塔DP的题目,注意边界条件,细节处理)
- HDU 1114 Piggy-Bank (完全背包水题,但注意一下时间输出)
- HDU 1087 Super Jumping!Jumping!Jumping求连续上升子序列的最大和值 (解析)
- HDU 1069 Monkey and Banana 对比优先权的设置和排序问题(解析)
- HDU 1029 Ignatius and the Princess IV(动规水题,有个很精妙的快解法)
- HDU 1024 Max Sum Plus Plus求前n个数中的若干个数分为连续的m段的最大和值(解析)
- HDU2000
- HDU2003
- HDU1095