bzoj 5094 [Lydsy1711月赛]硬盘检测 概率dp
[Lydsy1711月赛]硬盘检测
Time Limit: 1 Sec Memory Limit: 256 MB
Submit: 273 Solved: 75
[Submit][Status][Discuss]
Description
Input
第一行包含一个正整数m(m=10000),表示随机访问硬盘的次数。
Output
输出一行一个整数,即n的大小。
Sample Input
2743802941
2520732963
3408553159
1132588462
2520732963
1252627160
2963673642
3972869548
2743802941
684663103
2743802941
3972869548
2520732963
1252627160
1252627160
Sample Output
HINT
Source
#include <cstdio>
#include <cstring>
#include <iostream>
#include <map>
#include <cmath> using namespace std;
int m,tot,ans;
double mx,sum;
map<int,int> s;
int cnt[];
double jc[];
inline double c(int a,int b)
{
if(a<b) return -1e10;
return jc[a]-jc[a-b]-jc[b];
}
inline int rd()
{
int ret=,f=; char gc=getchar();
while(gc<''||gc>'') {if(gc=='-') f=-f; gc=getchar();}
while(gc>=''&&gc<='') ret=ret*+(gc^''),gc=getchar();
return ret*f;
}
int main()
{
m=rd();
register int n,i,a,tmp;
for(i=;i<=m;i++)
{
a=rd();
if(!s[a]) s[a]=++tot;
cnt[s[a]]++;
}
mx=-1e10;
for(i=;i<=m;i++) jc[i]=jc[i-]+log(i);
for(n=;n<=;n*=)
{
if(n<tot) continue;
sum=;
for(i=;i<=tot;i++) sum+=log(n-i+)-log(i);
sum+=-log(n)*m,tmp=m;
for(i=;i<=tot;i++) sum+=c(tmp,cnt[i]),tmp-=cnt[i];
if(sum>mx) mx=sum,ans=n;
}
printf("%d",ans);
}
bzoj 5094 [Lydsy1711月赛]硬盘检测 概率dp的更多相关文章
- 【BZOJ5094】硬盘检测 概率
[BZOJ5094]硬盘检测 Description 很久很久以前,小Q买了一个大小为n单元的硬盘,并往里随机写入了n个32位无符号整数.因为时间过去太久,硬盘上的容量字眼早已模糊不清,小Q也早已忘记 ...
- bzoj5091 [Lydsy1711月赛]摘苹果 概率题
[Lydsy1711月赛]摘苹果 Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 174 Solved: 135[Submit][Status][Dis ...
- bzoj 5092 [Lydsy1711月赛]分割序列 贪心高维前缀和
[Lydsy1711月赛]分割序列 Time Limit: 5 Sec Memory Limit: 256 MBSubmit: 213 Solved: 97[Submit][Status][Dis ...
- bzoj 5093 [Lydsy1711月赛]图的价值 NTT+第二类斯特林数
[Lydsy1711月赛]图的价值 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 245 Solved: 128[Submit][Status][D ...
- bzoj 5092: [Lydsy1711月赛]分割序列
5092: [Lydsy1711月赛]分割序列 Time Limit: 5 Sec Memory Limit: 256 MBSubmit: 219 Solved: 100[Submit][Stat ...
- 【BZOJ 1419】Red is good [概率DP]
我 是 Z Z 概率好玄啊(好吧是我太弱.jpg Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻 ...
- BZOJ 1246 & 有点不一样的概率DP
题意: 题意够坑的啊... 一个色子有n个面,第k次掷出一个加上这个k.求掷出所有面的期望值. 我一直以为值是色子面上的... 那么问题来了在色子面上怎么做...n还是1w级别... SOL: 对着理 ...
- bzoj 2553 [BeiJing2011]禁忌——AC自动机+概率DP+矩阵
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2553 看了题解才会…… 首先,给定一个串,最好的划分方式是按禁忌串出现的右端点排序,遇到能填 ...
- BZOJ.4832.[Lydsy1704月赛]抵制克苏恩(期望DP)
题目链接 \(f[s][i][j][k]\)表示还剩\(s\)次攻击,分别有\(i,j,k\)个血量为\(1,2,3\)的奴隶主时,期望受到伤害. 因为期望是倒推,所以这么表示从后往前求,注意\(a, ...
随机推荐
- C语言:类型、运算符、表达式
看了一天书,有点累了.就写写随笔记录一下今天的复习成果吧. C语言的基本数据类型 数值型:整型数,浮点数,布尔数,复数和虚数. 非数值型:字符. 整数最基本的是int,由此引出许多变式诸如有符号整数s ...
- Python3 函数参数
# # 常规参数 # def jiafa(a,b): # print(a+b) # # jiafa(5,6) # # # def xinxi(name,location,sex='male'): # ...
- OpenCV代码提取:transpose函数的实现
OpenCV中的transpose函数实现图像转置,公式为: 目前fbc_cv库中也实现了transpose函数,支持多通道,uchar和float两种数据类型,经测试,与OpenCV3.1结果完全一 ...
- C++各种类型的简单排序大汇总~
啊,排序的技能点也太多了吧!!!LITTLESUN快要**在排序的技能场了啊!(划掉)经历了两天48小时2880分钟172800秒的艰苦奋斗,终于终于终于学的差不多了!明天就可以去打排序的小怪喽!(撒 ...
- MYSQL--事务处理(转)
事务处理在各种管理系统中都有着广泛的应用,比如人员管理系统,很多同步数据库操作大都需要用到事务处理.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息,如 ...
- 【廖雪峰老师python教程】——filter/sorted
filter Python内建的filter()函数用于过滤序列. 和map()类似,filter()也接收一个函数和一个序列.和map()不同的是,filter()把传入的函数依次作用于每个元素,然 ...
- 树莓派3_win10下使用"远程桌面连接"与树莓派通信(使用VNC实现连接后)
-----------------------------------------------------------学无止境------------------------------------- ...
- Django,Celery, rabbitmq
学习Django 2 by Example书中的456页,运行 celery -A myshop worker -l info 报错.虽然特别指定了Celery的版本,也没用.之前使用的是标准安装:下 ...
- POJ 2182 / HDU 2711 Lost Cows(平衡树)
Description N (2 <= N <= 8,000) cows have unique brands in the range 1..N. In a spectacular di ...
- 使用ZSetOperations(有序)操作redis
方法 c参数 s说明 Boolean add(K key, V value, double score); K key:集合key V value:key对应的值 double score:分数 向 ...