\(Description:\)

有一群人要过一个有承重限制,只能一批一批的走这个桥,每个人有一个过桥时间和重量

\(Sample\) \(Input:\)

100 3
24 60
10 40
18 50

\(Sample\) \(Output:\)

42

\(Solution:\)

发现这题好像数据范围不大,那么大概是暴力吧?

然而事实证明是状压dp。

那么考虑把集合用二进制存下,设我们现在做到集合 \(s\)。

那么 \(s\) 肯定可以从他的子集那儿转移过来。 那些 \(s\) 中为 \(1\) 而 \(t\) (s的子集) 不为 \(1\) 的人 就是这一批过桥的人。

那么预处理这些人的总重量 \(load[t]\) 和过桥时间 \(Time[t]\)。

转移:

\(f[s]=min_{t\ \subseteq\ s }(f[s],f[t]+Time[s\ \ xor \ t])\)

害怕,这居然是我第一次一遍 A 的dp题。

开心~~

#include<bits/stdc++.h>
using namespace std;
int Max_load,n,Max_status;
const int N=16,M=(1<<(N+1))+5;
int f[M],t[N],l[N],Time[M],load[M];
inline int lowbit(int x){return x&(-x);
}
int main(){scanf("%d%d",&Max_load,&n);for(int i=1;i<=n;++i) scanf("%d%d",&t[i],&l[i]);Max_status=(1<<n)-1;for(int i=0;i<=Max_status;++i){for(int j=1;(1<<(j-1))<=i;++j) if(i&(1<<(j-1))){Time[i]= max(Time[i],t[j]);load[i]+=l[j];}}memset(f,0x3f,sizeof(f));f[0]=0;for(int i=0;i<=Max_status;++i){for(int j=i;j>=0;j=(j-1)&i){if(load[i^j]<=Max_load)f[i]=min(f[i],f[j]+Time[i^j]);if(!j) break;}}printf("%d\n",f[Max_status]);return 0;
}

转载于:https://www.cnblogs.com/JCNL666/p/10731266.html

【题解】2073: [POI2004]PRZ相关推荐

  1. bzoj 2073: [POI2004]PRZ

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

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

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

  3. Bzoj 2073 [POI2004]PRZ

    2073: [POI2004]PRZ Time Limit: 10 Sec  Memory Limit: 64 MB Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们 ...

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

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

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

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

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

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

  7. 【bzoj2073】[POI2004]PRZ 状态压缩dp

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

  8. 【bzoj2073】[POI2004]PRZ

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

  9. 洛谷P5911 [POI2004]PRZ

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

最新文章

  1. 融资关键技巧一5分钟 ,8个部分
  2. ECharts 交互组件概述
  3. 学习使用Markdown最基础的语法(编辑器通用)
  4. go gdb调试 参数设置 减小执行文件体积
  5. 暴力解决:InvocationException: GraphViz‘s executables not found
  6. Dapr 运用之集成 Asp.Net Core Grpc 调用篇
  7. u8转完看不到菜单_填制凭证界面上的菜单看不见
  8. matlab绝对均值,MATLAB中均值、方差、均方差的计算方法
  9. python日历代码_python日历代码
  10. 迪杰斯特拉算法(求最短路径)
  11. 【JAVA】JSON随机值生成工具类
  12. 【Paper笔记】Complement Objective Training
  13. 板块分析:筑底阶段 智能家居开启蓝海
  14. 配置Web.config文件显示错误信息
  15. 全触屏智能之战 三星i908E对比iPhone 3G
  16. pikachu Over permission 越权(皮卡丘漏洞平台通关系列)
  17. proxychains替代品polipo
  18. 硕士学位数据分析师工资_值得拥有数据科学方面的硕士学位
  19. [Linux Kernel] memory-barriers 内存屏蔽 官方文档
  20. java的密文发送_Java密文加密方式(一)AES

热门文章

  1. 计算机(computer)
  2. Ameya360临安团建之旅回顾 | 凝心聚力,共创未来!
  3. OpenCv图像处理实战——文档扫描
  4. android 仿 好友动态回复,仿微信评论回复(简易)
  5. 布艺沙发选购知多少?
  6. 汽车靠发动机带动发电机发电
  7. 南京某机关智能配电项目
  8. Python+Flask+MySQL实例——四六级单词表的查询
  9. 你被窥视了吗?清醒看移动应用程序隐私保护
  10. Meetup 回顾 | 多场景下的 H5 混合开发与 Flutter 多平台应用开发