01背包+概率问题 计蒜客 offer

题目:

蒜头君很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,这可是很惊人的。蒜头君没有多少钱,总共只攒了 n 万美元。他将在 m 个学校中选择若干的(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),并且蒜头君估计了他得到这个学校 offer 的可能性 b。

不同学校之间是否得到 offer 不会互相影响。“I NEED A OFFER”,他大叫一声。帮帮这个可怜的人吧,帮助他计算一下,他可以收到至少一份offer的最大概率。(如果蒜头君选择了多个学校,得到任意一个学校的offer都可以)。

输入格式

第一行有两个正整数 n,m(0≤n≤10000,0≤m≤10000)n,m(0 \le n \le 10000,0 \le m \le 10000)n,m(0n10000,0m10000)

后面的 m 行,每行都有两个数据 aia_iai(整型), bib_ibi (实型)分别表示第 i 个学校的申请费用和可能拿到 offer 的概率。

输出格式

每组数据都对应一个输出,表示蒜头君可能得到至少一份 offer 的最大概率。用百分数表示,精确到小数点后一位。

输出时每行末尾的多余空格,不影响答案正确性

要求使用「文件输入输出」的方式解题,输入文件为 offer.in,输出文件为 offer.out

样例输入

10 3
4 0.1
4 0.2
5 0.3

样例输出

44.0%

分析:

  • 当看见01背包问题的模型(有 n个物品和一个容量为 W 的背包,每个物品有重量 wiw_{i}wi 和价值viv_{i}vi两种属性,要求选若干物品放入背包使背包中物品的总价值最大且背包中物品的总重量不超过背包的容量。),再考虑如何将某offer放入
  • dp[j]表示花费j元,至少可以拿到一个学校的offer的概率。
  • 当有一所学校是花费x元拿到offer的概率是y。所以这个时候就是1.0-(1- dp[j-x])*(1-y),先计算一 个都考不上的概率,然后它的补集即是至少可以考上一个学校的概率。
  • 状态转移方程:
    dp[j]=max(dp[j],1.0−(1−dp[j−x])∗(1−y))dp[j]= max(dp[j],1.0-(1- dp[j-x])*(1- y))dp[j]=max(dp[j],1.0(1dp[jx])(1y))

AC代码:

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
const int M=1e4+10;
const int inf=0x3f3f3f3f;
double dp[M],b[M];
int a[M];
int n,m;
int main(){freopen("offer.in", "r", stdin);freopen("offer.out", "w", stdout);cin>>n>>m;for(int i=0;i<m;i++)cin>>a[i]>>b[i];for(int i=0;i<m;i++)for(int j=n;j>=a[i];j--)dp[j]=max(dp[j],1.0-(1-dp[j-a[i]])*(1-b[i]));printf("%.1f%%\n",dp[n]*100);//cout<<dp[n]*100<<"%"<<endl;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/309321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[JavaWeb-XML]XML_解析_解析方式

解析&#xff1a;操作xml文档&#xff0c;将文档中的数据读取到内存中 * 操作xml文档1. 解析(读取)&#xff1a;将文档中的数据读取到内存中2. 写入&#xff1a;将内存中的数据保存到xml文档中。持久化的存储* 解析xml的方式&#xff1a;1. DOM&#xff1a;将标记语言文档一次性…

【翻译】.NET 5 Preview5发布

今天&#xff0c;发布了.NET 5.0 Preview5。主要对它进行了一小部分新功能和性能的改进。.NET 5.0 Preview 4包含了一些计划和.NET 5.0要交付的内容。现在&#xff0c;大多数的功能都已经包含在里面&#xff0c;但是有许多功能还未到最终状态。预计这个版本在Preview 7中完善。…

构造前缀贪心+ 计蒜客 子矩阵求和

题目&#xff1a; 给出一个 nn 行 mm 列的矩阵&#xff0c;矩阵的每个位置有一个非负整数 a[i][j]&#xff0c;有 qq 次询问&#xff0c;每次询问求一个左上角为 (a,b)&#xff0c;右下角为 (c,d) 的子矩阵的所有数之和。 输入格式 第一行两个整数 n,m&#xff0c;表示矩阵的…

[JavaWeb-XML]约束(DTD,Schema)

DTD&#xff1a; * 引入dtd文档到xml文档中* 内部dtd&#xff1a;将约束规则定义在xml文档中* 外部dtd&#xff1a;将约束的规则定义在外部的dtd文件中* 本地&#xff1a;<!DOCTYPE 根标签名 SYSTEM "dtd文件的位置">* 网络&#xff1a;<!DOCTYPE 根标签名 …

[跨平台系列三Docker篇]:ASP.NET Core应用

如果你是老张的忠实读者的话&#xff0c;如果是从博客园就开始看我的文章的话&#xff0c;如果后期也一直看我公众号的话&#xff0c;应该就知道其实我一直在根据一条无形的教学线路来讲解的&#xff0c;&#xff0c;如果你真的是想好好学的话&#xff0c;请好好看看我之前的文…

2020牛客国庆集训派对day2 F题 Java大数处理

题目&#xff1a; 链接&#xff1a;https://ac.nowcoder.com/acm/contest/16913/F 来源&#xff1a;牛客网 The following code snippet calculates the sum of the areas of all the sub rectangular grid in a rectangular grid from (0,0) to (N,N)\ .(N,N) . Find an eff…

[JavaWeb-XML]XML_快捷查询方式(selector选择器,XPath)

快捷查询方式&#xff1a; 1. selector:选择器* 使用的方法&#xff1a;Elements select​(String cssQuery)* 语法&#xff1a;参考Selector类中定义的语法2. XPath&#xff1a;XPath即为XML路径语言&#xff0c;它是一种用来确定XML&#xff08;标准通用标记语言的子集&#…

[壹刊]Azure AD(四)知识补充-服务主体

一&#xff0c;引言又到了新的一周了&#xff0c;也到了我新的分享的时间了&#xff0c;还记得上一周立得Flag&#xff0c;其中 “保证每周输出一篇文章” &#xff0c;让我特别“在意”&#xff08;这里用词不太恰当&#xff09;。主要是我的一个大学舍友&#xff0c;他突然问…

前缀和优化+计蒜客 泡咖啡

题目: 蒜头君想泡咖啡喝。现在他得到了 nn 份菜谱&#xff0c;每个菜谱上都给了两个数l,rl,rl,r代表温度区间在[l,r][l,r][l,r] 度泡出来的咖啡会很好喝。 可是菜谱太多了&#xff0c;蒜头君一度感到疑惑。经过思考之后他得出了一个结论&#xff1a;某个温度只要有 k 份或者更…

[JavaWeb-Servlet]Servlet_执行原理

执行原理&#xff1a; 1. 当服务器接受到客户端浏览器的请求后&#xff0c;会解析请求URL路径&#xff0c;获取访问的Servlet的资源路径2. 查找web.xml文件&#xff0c;是否有对应的<url-pattern>标签体内容。3. 如果有&#xff0c;则在找到对应的<servlet-class>全…

分享我在前后端分离项目中Gitlab-CI的经验

之前我分享了为ASP.NET Core后端搭建Gitlab-CI/CD实践&#xff0c;今天继续聊一聊为前后端分离搭建Gitlab-CI的额外经验。BeforeGitlab-ci是Gitlab提供的CI/CD特性&#xff0c;结合Gitlab简单友好的配置界面&#xff0c;能愉悦的在Gitlab界面查看管道执行流程&#xff0c;并自然…

最短路(遍历边)计蒜客—DD坐地铁

题目&#xff1a; C 城有 n 个站点&#xff0c; m 条双向地铁&#xff0c;每条地铁有一个 companyicompany_icompanyi​表示它的公司&#xff0c;如果连续乘坐同一家公司的地铁只要花 1元钱就好。DD现在想出门找萨摩耶玩&#xff0c;但是 DD 是贫困人口&#xff0c; 她想知道最…

[JavaWeb-Servlet]Servlet中的生命周期方法(init,service,destroy)

Servlet中的生命周期方法&#xff1a; Override public void init(ServletConfig servletConfig) throws ServletException {}1. 被创建&#xff1a;执行init方法&#xff0c;只执行一次* Servlet什么时候被创建&#xff1f;* 默认情况下&#xff0c;第一次被访问时&#xff0…

lin-cms-dotnetcore.是如何方法级别的权限控制(API级别)的

方法级别的权限控制&#xff08;API级别&#xff09;Lin的定位在于实现一整套 CMS的解决方案&#xff0c;它是一个设计方案&#xff0c;提供了不同的后端&#xff0c;不同的前端&#xff0c;而且也支持不同的数据库目前官方团队维护 lin-cms-vue,lin-cms-spring-boot,lin-cms-k…

线段树维护区间最大值+第 45 届(ICPC)亚洲区域赛(昆明)L题Simone and Graph Coloring

题意&#xff1a; 给你n个数的序列&#xff0c;当满足i<ji<ji<j andandand ai>aja_i>a_jai​>aj​时&#xff0c;这两个点之间有一条边&#xff0c;现在对点染色&#xff0c;要求每个点相邻的点颜色不同&#xff0c;问如何染色使得不同颜色数量最小。 题目…

[JavaWeb-Servlet]Servlet3.0注解配置

Servlet3.0&#xff1a; * 好处&#xff1a;* 支持注解配置。可以不需要web.xml了。* 步骤&#xff1a;1. 创建JavaEE项目&#xff0c;选择Servlet的版本3.0以上&#xff0c;可以不创建web.xml2. 定义一个类&#xff0c;实现Servlet接口3. 复写方法4. 在类上使用WebServlet注解…

基于 abp vNext 和 .NET Core 开发博客项目 - Blazor 实战系列(四)

系列文章使用 abp cli 搭建项目给项目瘦身&#xff0c;让它跑起来完善与美化&#xff0c;Swagger登场数据访问和代码优先自定义仓储之增删改查统一规范API&#xff0c;包装返回模型再说Swagger&#xff0c;分组、描述、小绿锁接入GitHub&#xff0c;用JWT保护你的API异常处理和…

字符串相关

文章目录字符串基础字符串的存储标准库字符串匹配单串匹配多串匹配其他类型的字符串匹配问题字符串哈希Hash 的实现Hash 的分析与改进错误率多次询问子串哈希Hash 的应用字符串匹配允许 k次失配的字符串匹配最长回文子串最长公共子字符串确定字符串中不同子字符串的数量字典树 …

[JavaWeb-Servlet]IDEA与Tomcat的相关配置

IDEA与tomcat的相关配置 1. IDEA会为每一个tomcat部署的项目单独建立一份配置文件* 查看控制台的log&#xff1a;Using CATALINA_BASE: "C:\Users\fqy\.IntelliJIdea2018.1\system\tomcat\_itcast"2. 工作空间项目 和 tomcat部署的web项目* tomcat真正访问…

C#9.0 终于来了,您还学的动吗? 带上VS一起解读吧!

一&#xff1a;背景1. 讲故事好消息&#xff0c;.NET 5.0 终于在2020年6月10日发布了第五个预览版&#xff0c;眼尖的同学一定看到了在这个版本中终于支持了 C# 9.0&#xff0c;此处有掌声&#xff0c;太好了&#xff01;&#xff01;&#xff01;.Net5官方链接可以看到目前的C…