题意 :

  • 有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)相关推荐

  1. 期望/概率dp 学习报告

    期望dp 期望的基本性质 离散型随机变量和连续型随机变量 例题1:红包发红包 期望的基本运算性质 例题2:Little Pony and Expected Maximum 期望的一些经典题型 图上期望 ...

  2. 崩坏3卡池模拟器及毕业期望概率计算(含保底)

    目录 崩坏3卡池模拟器及毕业期望概率计算(含保底) 简介 程序演示 得出的一些有趣结果 readme code 崩坏3卡池模拟器及毕业期望概率计算(含保底) 简介 最近学概率论要求写论文,没什么好写的 ...

  3. LightOJ - 1038 Race to 1 Again 基础期望概率 dp

    传送门 刚刚学习期望&概率 我们设数X的期望改变次数为P[X] 如果要求X的期望,很容易想到找x的因子; 可以得到下式  ,cnt为X因子个数,ai为X的因子 可以这么理解,当因子ai为1时, ...

  4. jzoj4745-看电影【期望概率,数学】

    正题 题目大意 一个环,nnn个人. 每次随机选一个位置,把顺时针第一个踢掉.直到只剩下kkk个人,求第ididid个人留下的期望概率. 解题思路 首先我们考虑一个环,若第xxx的概率比第yyy号的概 ...

  5. 【NOIP2013模拟】守卫者的挑战(期望概率)

    Description 打开了黑魔法师Vani的大门,队员们在迷宫般的路上漫无目的地搜寻着关押applepi的监狱的所在地.突然,眼前一道亮光闪过."我,Nizem,是黑魔法圣殿的守卫者.如 ...

  6. 阿里春招笔试2020.3.27(贪心/差分/概率)

    申明:大概题意是从牛客网讨论区嫖的,题目的输入.输出以及数据数据范围也有些不知,大家看看思路就好,这些细节就不管了QAQ.有错欢迎纠正~ 3.27 题目一(贪心) 给定字符串s1,s2,求从s1变为s ...

  7. 【BZOJ 4832】 [Lydsy2017年4月月赛] 抵制克苏恩 期望概率dp

    打记录的题打多了,忘了用开维记录信息了......我们用f[i][j][l][k]表示已经完成了i次攻击,随从3血剩j个,2血剩l个,1血剩k个,这样我们求出每个状态的概率,从而求出他们对答案的贡献并 ...

  8. LightOJ 1030 Discovering Gold(期望 概率)

    正推,到达i的概率为p[i],要注意除了1和n外,到达i的概率并不一定为1 概率表达式为p[i] += p[j] / min(n - j, 6) 从j带过来的期望为exp[i] += exp[j] / ...

  9. python 从字符串中随机选取4个字符_我需要一个Python函数,当给定字符的期望概率时,它将输出4个不同字符的随机字符串...

    对于四封信,我脑海中闪过的是:from random import random def randABCD(n, pA, pB, pC, pD): # assumes pA + pB + pC + p ...

最新文章

  1. Apache Software Foundation Distribution Directory
  2. activereport
  3. Maven里头的pom.xml配置详解
  4. 利用jira-python及selenium完成jira的统计报表及日报的填写
  5. 毕业设计之 ---- 基于大数据挖掘分析的大众点评评论文本挖掘
  6. Java项目文件目录结构介绍
  7. 计算机网络知识点全面总结(有这一篇就够了!!!)
  8. Excel 函数基本应用
  9. XP的定时关机命令?
  10. 小程序验证身份证号、验证手机号方法
  11. 【随笔记】Deepin20系统更换fish,替代bash
  12. fMRI Tutorial:FSL处理功能核磁共振数据
  13. PPT文档中如何插入超链接
  14. 【CF869E】The Untended Antiquity(哈希+二维树状数组)
  15. linux系统hostapd强制使用40MHz频宽
  16. ubuntu16.04 安装opencv的viz模块
  17. python从视频中提取音频信号_三行Python代码提取视频中的音频
  18. C# goto用法事例
  19. 使用决策树对数据进行分类——识别橘子苹果
  20. 国王和100个囚犯还有1盏灯

热门文章

  1. 装运点确认失败的排查
  2. FD33里面的销售值不正确应该怎么办?
  3. SAP评估级别 Valuation Area
  4. 《他其实没那么喜欢你》经典台词
  5. 还找不到数据异常原因?这份教程赶快拿走
  6. 想用一张报表满足多人需求?只需这3招,轻松实现0到100分新突破
  7. 掌握5个核心要点,做一个高质量的数据分析报告
  8. html overflow隐藏滚动条,css 之内容溢出滚动,隐藏滚动条
  9. 上行数据和下行数据什么意思_上行带宽和下行带宽什么意思?
  10. 石板切割问题c语言_天长井盖切割机切圆机市政窨井盖切圆机