I NEED A OFFER!
    64bit IO Format: %lld & %llu

Submit Status

Description

Description

Speakless很早就想出国,现在他已经考完了所有需要的考试,准备了所有要准备的材料,
于是,便需要去申请学校了。要申请国外的任何大学,你都要交纳一定的申请费用,
这可是很惊人的。Speakless没有多少钱,总共只攒了n万美元。他将在m个学校中选择若干的
(当然要在他的经济承受范围内)。每个学校都有不同的申请费用a(万美元),
并且Speakless估计了他得到这个学校offer的可能性b。不同学校之间是否得到offer不会互相影响。
“I NEED A OFFER”,他大叫一声。帮帮这个可怜的人吧,帮助他计算一下,
他可以收到至少一份offer的最大概率。
(如果Speakless选择了多个学校,得到任意一个学校的offer都可以)。

Input

输入有若干组数据,每组数据的第一行有两个正整数n,m(1<=n<=10000,1<=m<=1000)
后面的m行,每行都有两个数据ai(整型),bi(实型)分别表示第i个学校的申请费用和可能拿到offer的概率。
输入的最后有两个0。

Output

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

Sample Input

10 3
4 0.1
4 0.2
5 0.3
0 0

Sample Output

44.0%

Source

Speakless @ Gardon - DYGG's contest 2

题目链接:SCU 2941

初看跟小数背包有那么点像,但其实略有不同,这题的背包体积还是当前拥有的钱,只是转移方程稍微变一下,算至少一份offer不好算,但是算不出现offer的几率好算,把不出现的几率相乘起来就可以了,每次取min使得不出现几率最小,反过来出现一份offer的几率就是最大了……

代码:

#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<sstream>
#include<cstring>
#include<bitset>
#include<cstdio>
#include<string>
#include<deque>
#include<stack>
#include<cmath>
#include<queue>
#include<set>
#include<map>
using namespace std;
#define INF 0x3f3f3f3f
#define CLR(x,y) memset(x,y,sizeof(x))
#define LC(x) (x<<1)
#define RC(x) ((x<<1)+1)
#define MID(x,y) ((x+y)>>1)
typedef pair<int,int> pii;
typedef long long LL;
const double PI=acos(-1.0);
const int N=10010;
int c[N];
double w[N];
double dp[N];
void zonepack(double w,int c,int V)
{for (int i=V; i>=c; --i)dp[i]=min(dp[i],dp[i-c]*w);
}
int main(void)
{int n,m,i,j;while (~scanf("%d%d",&n,&m)&&(n||m)){fill(dp,dp+N,1.0);for (i=0; i<m; ++i){scanf("%d%lf",&c[i],&w[i]);w[i]=1.0-w[i];}for (i=0; i<m; ++i)zonepack(w[i],c[i],n);printf("%.1lf%%\n",(1-dp[n])*100);}return 0;
}

转载于:https://www.cnblogs.com/Blackops/p/5789456.html

SCU 2941 I NEED A OFFER!(01背包变形)相关推荐

  1. codeforce Gym 101102A Coins (01背包变形)

    01背包变形,注意dp过程的时候就需要取膜,否则会出错. 代码如下: #include<iostream> #include<cstdio> #include<cstri ...

  2. P1734 最大约数和 01背包变形

    传送门 思路:01背包变形题.将i看成重量,i的因子看成价值即可.背包自然是s. /** * From: * Qingdao Agricultural University * Created by ...

  3. HDU 3466 01背包变形

    给出物品数量N和总钱数M 对于N个物品.每一个物品有其花费p[i], 特殊值q[i],价值v[i] q[i] 表示当手中剩余的钱数大于q[i]时,才干够买这个物品 首先对N个物品进行 q-p的排序,表 ...

  4. poj 2063 Investment(01背包变形)

    http://poj.org/gotoproblem?pid=2063 (1)上限 m 一直上升的 n 次01背包问题,比一般的01背包多了一重循环: (2)本题出现了各种错误:1)刚开始,没注意 m ...

  5. hdu 2184 01背包变形

    转自:http://blog.csdn.net/liuqiyao_01/article/details/8753686 题意:这是又是一道01背包的变体,题目要求选出一些牛,使smartness和fu ...

  6. uestc oj 1218 Pick The Sticks (01背包变形)

    题目链接:http://acm.uestc.edu.cn/#/problem/show/1218 给出n根木棒的长度和价值,最多可以装在一个长 l 的容器中,相邻木棒之间不允许重叠,且两边上的木棒,可 ...

  7. #1353 : 满减优惠(01背包变形)

    描述 最近天气炎热,小Ho天天宅在家里叫外卖.他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元.并且如果消费总计满X元,还能享受优惠.小Ho是一个不薅羊毛不舒服斯基的人,他希望 ...

  8. UVA 12563 Jin Ge Jin Qu hao 01背包变形

    基本的01背包,更新的时候保持背包里每一个元素的num最大然后time尽量长 CSDN也支持makedown了试一下 12563 Jin Ge Jin Qu hao (If you smiled wh ...

  9. HDU 2546 饭卡 01背包变形

    饭卡 Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submiss ...

  10. 2022-9-2何以包邮(01背包变形)(c/c++实测满分)

    总结:         此题是背包问题的变形,物品的价值和重量有所改变,背包的容量限制有所改变,但核心动态规划求法没有改变.只需要在背包问题的解法上根据题意对物品表示,答案输出进行改变即可. 背包算法 ...

最新文章

  1. 软件测试--利用正交表设计测试用例
  2. 如何快速开发一个博客
  3. element vue 获取select 的label_Vue动态组件component的深度使用
  4. python进行数据查询_如何进行python数据库查询?(实例解析)
  5. 201521123121 《Java程序设计》第14周学习总结
  6. apache php mysql配置详解,详细介绍:Apache+PHP+MySQL配置攻略_php基础
  7. 写篇技术博客被简书锁定是一种什么样的体验
  8. JavaScript 将两个数组合并,且删除重复的值
  9. 单词毕业设计,微信小程序毕设,小程序毕设源码,单词天天斗 (毕业设计/实战小程序学习/微信小程序完整项目)
  10. 基于MyApps低代码平台实现的流程化知识管理系统
  11. 23位子网掩码是多少_子网掩码划分
  12. 利用Google快讯和GoogleReader收集信息
  13. 用友NC V6.5 6.33 6.31 6.3 6.1 2019新个人所得税增强包税改升级补丁包
  14. 关于Windows 2003 安装Inter G33/G31 显卡问题
  15. 使用viewer实现图片预览
  16. tplinkwr710n改无线打印服务器,TP-Link TL-WR710N V1无线路由器AP模式怎么设置
  17. matlab 怎么使用mathtype,教你怎样在Authorea里面使用MathType
  18. MQTT客户端远程控制WIFI设备(阿里云物联网平台)
  19. ArcGIS JS 版军事标绘图、燕尾箭头;支持VUE版本
  20. Python 模拟登录AUSU路由器获取在线用户列表

热门文章

  1. Windows 两条命令找到占用你某个端口的程序
  2. 数值的整数次方(代码的完整性)
  3. hadoop1.1.2集群安装指南
  4. 公式字符串转换为公式或结果
  5. 浏览器无法打开xml文件解决方案
  6. aggs 聚合 取结果
  7. Web开发中常用的linux命令 详解
  8. 华为员工实力炫富,工作六年有房有豪车,存款六十万
  9. 用工厂流水线的方式来理解 RxJava 的概念
  10. 浅读vue-router源码,了解vue-router基本原理