CodeForces 626D Jerry's Protest
2016-02-20 16:21
337 查看
计算前两盘A赢,最后一盘B赢的情况下,B获得的球的值总和大于A获得的球总和值的概率。
存储每一对球的差值有几个,然后处理一下前缀和,暴力枚举就好了......
存储每一对球的差值有几个,然后处理一下前缀和,暴力枚举就好了......
#include<cstdio> #include<cstring> #include<cmath> #include<string> #include<vector> #include<queue> #include<algorithm> #include<iostream> using namespace std; const int maxn = 5000 + 10; int n; int a[maxn]; int b[maxn]; int sum[maxn]; int main() { scanf("%d", &n); for (int i = 1; i <= n; i++) scanf("%d", &a[i]); memset(sum, 0, sizeof sum); memset(b, 0, sizeof b); sort(a+1, a + n+1); for (int i = 1; i <= n; i++) for (int j = i + 1; j <= n; j++) b[a[j] - a[i]]++; double ans = 0; for (int i = 1; i <= 5000; i++) sum[i] = sum[i - 1] + b[i]; for (int i = 0; i <= 5000; i++) for (int j = 0; j <= 5000; j++) { if (i + j <= 5000) ans = ans + 1.0*b[i] * b[j] * (sum[5000] - sum[i + j]); } // printf("%d\n", ans); double N = (double)n; double f = N*(N - 1)*N*(N - 1)*N*(N - 1) / 8.0; printf("%.6lf\n", 1.0*ans / f); return 0; }
相关文章推荐
- 《结网》读书笔记
- 【Web基础】HTTP长连接和短连接以及推送技术原理
- 【干货分享】快速玩转Apple Pay开发
- 求php中的request详细用法
- C++内存管理
- Activity之间的跳转
- QSS学习参考的网页
- 搭建持续集成单元测试平台(Jenkins+Ant+Java+Junit+SVN)
- mfc实现哈希Hash算法(MD5和SHA1)加密
- javascript getTime()
- DC4C代码阅读(5)——计算节点
- 蓝桥杯 历届试题 打印十字图 java详解
- 如何在 kernel 和 hal 层读取同一个标志
- 索引
- ServiceManager的启动过程分析
- 单例模式
- 根据数组元素包含某字符串过滤并生成新的数组
- 介绍 Android DropBoxManager Service
- CodeForces 626C Block Towers
- Jmeter报告优化之New XSL stylesheet