Messages 贪心,期望,概率,模拟(2000)
题意 :
- 有n个学生,给出老师希望每个学生读的一条消息mim_imi和每个学生最多能读多少条消息kik_iki,如果老师发生的消息大于kik_iki,学生读到任意一条消息的概率是ki消息总数\frac{k_i}{消息总数}消息总数ki
- 现在希望每个学生读到希望被读的那条的消息的期望和最大,求构造发送消息是哪些
思路 :
- 我们考虑新增一本书的影响,设原本期望是E,已经挑了n本书,有t个人要看这第n+1本书,而且他们看到这本书的概率和是P=∑kn+1\frac {\sum{k}}{n+1}n+1∑k,因为每个人的期望是P*1,所以他们看到这本书的期望和也是P
- 那么这本书对原期望的影响是E=nE+Pn+1\frac{nE+P}{n+1}n+1nE+P
- 因此,P必须比E大,于是可以贪心,让∑k\sum{k}∑k大的书先选,然后枚举答案j,每个人的k=min(k, j)
- 可以发现答案很小,因k<=20,然后j>20必然会让答案减小,因此,可以直接模拟
#include <iostream>
#include <iomanip>
#include <vector>
#include <numeric>
#define pb push_backusing namespace std;
using ll = long long;const int N = 2e5 + 10;int main()
{cin.tie(nullptr) -> sync_with_stdio(false);cout << fixed << setprecision(20);int n;cin >> n;vector<int> m(n + 1), k(n + 1);int mxK = 0;for (int i = 1; i <= n; i ++ ) cin >> m[i] >> k[i], mxK = max(mxK, k[i]);vector<int> p(N);for (int i = 1; i < N; i ++ ) p[i] = i;vector<int> ans;double res = 0.0; // 最优期望for (int i = 1; i <= mxK; i ++ ){vector<double> cnt(N, 0.0);for (int j = 1; j <= n; j ++ ){if (k[j] >= i) cnt[m[j]] += 1.0;else cnt[m[j]] += (double)k[j] / i; // 当前决定一共选i本书,m[j]这本书被看到的期望为sum{k} / i}// 期望值从大到小sort(p.begin() + 1, p.end(), [&](int a, int b){return cnt[a] > cnt[b];});double tmp = 0.0; // 选i本书的期望for (int j = 1; j <= i; j ++ ) tmp += cnt[p[j]];if (tmp > res){res = tmp;ans.clear();for (int j = 1; j <= i; j ++ ) ans.pb(p[j]);}}cout << (int)ans.size() << endl;for (auto i : ans)cout << i << " \n"[i == ans.back()];return 0;
}
Messages 贪心,期望,概率,模拟(2000)相关推荐
- 期望/概率dp 学习报告
期望dp 期望的基本性质 离散型随机变量和连续型随机变量 例题1:红包发红包 期望的基本运算性质 例题2:Little Pony and Expected Maximum 期望的一些经典题型 图上期望 ...
- 崩坏3卡池模拟器及毕业期望概率计算(含保底)
目录 崩坏3卡池模拟器及毕业期望概率计算(含保底) 简介 程序演示 得出的一些有趣结果 readme code 崩坏3卡池模拟器及毕业期望概率计算(含保底) 简介 最近学概率论要求写论文,没什么好写的 ...
- LightOJ - 1038 Race to 1 Again 基础期望概率 dp
传送门 刚刚学习期望&概率 我们设数X的期望改变次数为P[X] 如果要求X的期望,很容易想到找x的因子; 可以得到下式 ,cnt为X因子个数,ai为X的因子 可以这么理解,当因子ai为1时, ...
- jzoj4745-看电影【期望概率,数学】
正题 题目大意 一个环,nnn个人. 每次随机选一个位置,把顺时针第一个踢掉.直到只剩下kkk个人,求第ididid个人留下的期望概率. 解题思路 首先我们考虑一个环,若第xxx的概率比第yyy号的概 ...
- 【NOIP2013模拟】守卫者的挑战(期望概率)
Description 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过."我,Nizem,是黑魔法圣殿的守卫者.如 ...
- 阿里春招笔试2020.3.27(贪心/差分/概率)
申明:大概题意是从牛客网讨论区嫖的,题目的输入.输出以及数据数据范围也有些不知,大家看看思路就好,这些细节就不管了QAQ.有错欢迎纠正~ 3.27 题目一(贪心) 给定字符串s1,s2,求从s1变为s ...
- 【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp
打记录的题打多了,忘了用开维记录信息了......我们用f[i][j][l][k]表示已经完成了i次攻击,随从3血剩j个,2血剩l个,1血剩k个,这样我们求出每个状态的概率,从而求出他们对答案的贡献并 ...
- LightOJ 1030 Discovering Gold(期望 概率)
正推,到达i的概率为p[i],要注意除了1和n外,到达i的概率并不一定为1 概率表达式为p[i] += p[j] / min(n - j, 6) 从j带过来的期望为exp[i] += exp[j] / ...
- python 从字符串中随机选取4个字符_我需要一个Python函数,当给定字符的期望概率时,它将输出4个不同字符的随机字符串...
对于四封信,我脑海中闪过的是:from random import random def randABCD(n, pA, pB, pC, pD): # assumes pA + pB + pC + p ...
最新文章
- Apache Software Foundation Distribution Directory
- activereport
- Maven里头的pom.xml配置详解
- 利用jira-python及selenium完成jira的统计报表及日报的填写
- 毕业设计之 ---- 基于大数据挖掘分析的大众点评评论文本挖掘
- Java项目文件目录结构介绍
- 计算机网络知识点全面总结(有这一篇就够了!!!)
- Excel 函数基本应用
- XP的定时关机命令?
- 小程序验证身份证号、验证手机号方法
- 【随笔记】Deepin20系统更换fish,替代bash
- fMRI Tutorial:FSL处理功能核磁共振数据
- PPT文档中如何插入超链接
- 【CF869E】The Untended Antiquity(哈希+二维树状数组)
- linux系统hostapd强制使用40MHz频宽
- ubuntu16.04 安装opencv的viz模块
- python从视频中提取音频信号_三行Python代码提取视频中的音频
- C# goto用法事例
- 使用决策树对数据进行分类——识别橘子苹果
- 国王和100个囚犯还有1盏灯