Description

一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍过桥时只能分批过,当一组全部过去时,下一组才能接着过. 队伍里每个人过桥都需要特定的时间,当一批队员过桥时时间应该算走得最慢的那一个,每个人也有特定的重量,我们想知道如何分批过桥能使总时间最少.

Input

第一行两个数: w – 桥能承受的最大重量(100 <= w <= 400) 和 n – 队员总数(1 <= n <= 16). 接下来n 行每行两个数分别表示: t – 该队员过桥所需时间(1 <= t <= 50) 和 w – 该队员的重量(10 <= w <= 100).

Output

输出一个数表示最少的过桥时间.

Sample Input

100 3

24 60

10 40

18 50

Sample Output

42

题解:
今天做了太多状压dp了,导致我觉得已经没什么好说的了……
就枚举状态转移吧……

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<string.h>
#include<math.h>
#define ll long long
#define inf 0x7f7f7f7f
#define N 65536
using namespace std;
int m,n,t[20],w[20],bin[20],ti[N],wei[N],dp[N];
int main()
{memset(dp,63,sizeof(dp));for(int i=0;i<=16;i++) bin[i]=(1<<i);scanf("%d%d",&m,&n);for(int i=1;i<=n;i++) scanf("%d%d",&t[i],&w[i]);for(int i=1;i<bin[n];i++)for(int j=1;j<=n;j++)if(i&bin[j-1]) {ti[i]=max(ti[i],t[j]);wei[i]+=w[j];}dp[0]=0;for(int i=1;i<bin[n];i++)for(int j=i;j;j=i&(j-1))if(wei[j]<=m) dp[i]=min(dp[i],ti[j]+dp[i^j]);printf("%d\n",dp[bin[n]-1]);return 0;
}

【BZOJ2073】【POI2004】PRZ(状压dp)相关推荐

  1. 【BZOJ2073】[POI2004]PRZ 状压DP

    [BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...

  2. BZOJ 2073: [POI2004]PRZ( 状压dp )

    早上这道题没调完就去玩NOI网络同步赛了.... 状压dp , dp( s ) 表示 s 状态下所用的最短时间 , 转移就直接暴力枚举子集 . 可以先预处理出每个状态下的重量和时间的信息 . 复杂度是 ...

  3. bzoj 2073:[POI2004]PRZ 状压DP

    Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍 ...

  4. BZOJ 2073: [POI2004]PRZ 状压动归

    2073: [POI2004]PRZ Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 315  Solved: 237 [Submit][Status] ...

  5. BZOJ2073 PRZ(状压dp)

    ** BZOJ2073 PRZ(状压dp) ** Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候 ...

  6. bzoj2073 [POI2004]PRZ

    http://www.elijahqi.win/2018/01/24/bzoj2073-poi2004prz/ ‎ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要 ...

  7. POJ 1038 Bugs Integrated Inc (复杂的状压DP)

    \(POJ~1038~~*Bugs~Integrated~Inc:\) (复杂的状压DP) \(solution:\) 很纠结的一道题目,写了大半天,就想练练手,结果这手生的.其实根据之前那道炮兵阵地 ...

  8. codeforces 8C. Looking for Order 状压dp

    题目链接 给n个物品的坐标, 和一个包裹的位置, 包裹不能移动. 每次最多可以拿两个物品, 然后将它们放到包里, 求将所有物品放到包里所需走的最小路程. 直接状压dp就好了. #include < ...

  9. UVA10296 Jogging Trails(中国邮递员问题)(欧拉回路、一般图最大权匹配 / 状压DP)

    整理的算法模板合集: ACM模板 目录 思路 UVA10296 Jogging Trails 题目翻译: 给你n个点,m条无向边,每条边有一定的距离数值,构造成一个连通图.问从任意一点出发,遍历所有的 ...

最新文章

  1. Tensorflow多线程输入数据处理框架(一)——队列与多线程
  2. 区块链学习笔记(五)
  3. 友盟开放日: 通过 App 内社区提高留存率的 6 个技巧
  4. python做abaqus后处理_python进行abaqus后处理的二次开发,我想提取odb文件中的nodeSet,结果总提示Keyerror,请各位大神指教。...
  5. 看国外女神级程序员,直播写代码一年的感悟
  6. 清除防火墙所有配置规则
  7. 工作113:声明问题 的定义变量
  8. java dom4j api_详解Java解析XML的四种方法(推荐使用DOM4J,因为for Java)
  9. R_ggplot2基础(一)
  10. Jdk1.6.0+Tomcat6.0环境变量配置
  11. 【MCMC】基于贝叶斯优化的自适应MCMC算法仿真
  12. Simulink 快速入门(二)--创建简单模型
  13. 常见的企业流程再造模式
  14. PAT_1078 Hashing
  15. 传输预编码matlab,基于MATLAB的MIMO系统预编码性能仿真.doc
  16. 3.10 Maya历法
  17. 圣诞快到了,用JavaScript画一个圣诞树
  18. iOS7下的drawInRect的新方法drawInRect:withAttributes:使用
  19. Wrapper中ge,gt,lt,le的含义
  20. 摩托罗拉刷机维修服务器,摩托罗拉手机通用刷机教程

热门文章

  1. 国内三甲医院首度应用iPad
  2. 【嵌入式实验】南航嵌入式实验报告——定时器TIMx实验
  3. 奋斗逼是如何产生呢?
  4. 个人做vue项目的心得和体会
  5. html 隐藏和显示
  6. 厦门理工学院c语言实验报告5,厦门理工学院 C语言报告实验8 - 结构体
  7. ftp软件pc版,三个非常好使ftp软件pc版
  8. 如何设置mysql不区分大小写 ?
  9. (CV,Math)射影几何
  10. 微信小程序-能左右滑动的订单列表