【2016杭电女生赛1003】【暴力】Luck Competition 选数平均数乘2除3 小且最接近的数
2016-05-22 21:34
393 查看
#include<stdio.h> #include<iostream> #include<string.h> #include<string> #include<ctype.h> #include<math.h> #include<set> #include<map> #include<vector> #include<queue> #include<bitset> #include<algorithm> #include<time.h> #include<assert.h> using namespace std; void fre() { freopen("c://test//input.in", "r", stdin); freopen("c://test//output.out", "w", stdout); } #define MS(x,y) memset(x,y,sizeof(x)) #define MC(x,y) memcpy(x,y,sizeof(x)) #define MP(x,y) make_pair(x,y) #define ls o<<1 #define rs o<<1|1 typedef long long LL; typedef unsigned long long UL; typedef unsigned int UI; template <class T1, class T2>inline void gmax(T1 &a, T2 b) { if (b>a)a = b; } template <class T1, class T2>inline void gmin(T1 &a, T2 b) { if (b<a)a = b; } const int N = 0, M = 0, Z = 1e9 + 7, ms63 = 0x3f3f3f3f; int casenum, casei; int n, x; int cnt[105]; int main() { scanf("%d", &casenum); for (casei = 1; casei <= casenum; ++casei) { MS(cnt, 0); scanf("%d", &n); int sum = 0; for (int i = 1; i < n; ++i) { scanf("%d", &x); sum += x; ++cnt[x]; } for (int i = 100; i >= 0; --i)cnt[i] += cnt[i + 1]; int ans = -1; int num = 10000; for (int i = 0; i <= 100; ++i) { int m = (sum + i) * 2 / (3 * n); //如果i是比m小的最大的数则尝试更新答案 if (i <= m && (i + 1 > m || cnt[i + 1] == 0)) { if (cnt[i] - cnt[i+1] <= num) { ans = i; num = cnt[i] - cnt[i+1]; } } } printf("%d %.2f\n", ans, 1.0 / (1 + num)); } return 0; } /* 【题意】 n(2~100)个人参加一个游戏, 每个人选择1~100范围的数。 然后得到所有数的平均数,再*=2/3,设得到的数为m。 如果一个人选的数,比m小,且相距m最为接近,那么其便在所有选数相同的人中等概率中奖。 现在,我们也参加比赛,其他n-1个人所选择的数也已经确定了,并且我们知道。 问你,选什么数拥有最高中奖率,并输出。 【类型】 暴力 【分析】 这题选数范围非常小,只有1~100。 于是我们可以直接暴力枚举这个人选的数是什么, 然后,我们便可以算出这个m。 m可以为浮点数或者向下取整变为int,这个是怎样都不影响,于是我们不妨取m为整数。 接下来,如果这个数,是<=m的数中最大的数,我们便可以在这个基础上更新答案。 如果用一个后缀和优化的话,复杂度就由O(100nT)变为O(100T) 【时间复杂度&&优化】 O(100nT)->O(100T) */
相关文章推荐
- Java---基于TCP协议的相互即时通讯小程序
- .Net初使用MySql数据库生成Model类并与SqlServer简单对比
- .Net 面试题整理(一)
- Java项目:学生成绩管理系统(二)
- 用js实现放大镜的效果
- centos7 下安装MongoDB
- FreeRTOS内核详解----LIST
- web应用程序
- 使用Android studio 开发xposed插件
- 问题 F: 因子和
- inux2.6.xx内核代码分析( 72节)
- 慕课linux学习笔记(八)常用命令(5)
- hdu1556Color the ball(线段树)
- HTML---网络编程基础知识(2)
- Spark多文件输出(MultipleOutputFormat)
- 问题 H: 不开心的小明③
- 【caffe-Windows】cifar实例编译之model的生成
- go语言的变量声明
- c++作业6
- GridView1 footer求和