【题解】2073: [POI2004]PRZ
\(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相关推荐
- bzoj 2073: [POI2004]PRZ
2073: [POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上的 ...
- BZOJ 2073: [POI2004]PRZ( 状压dp )
早上这道题没调完就去玩NOI网络同步赛了.... 状压dp , dp( s ) 表示 s 状态下所用的最短时间 , 转移就直接暴力枚举子集 . 可以先预处理出每个状态下的重量和时间的信息 . 复杂度是 ...
- Bzoj 2073 [POI2004]PRZ
2073: [POI2004]PRZ Time Limit: 10 Sec Memory Limit: 64 MB Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们 ...
- BZOJ 2073: [POI2004]PRZ 状压动归
2073: [POI2004]PRZ Time Limit: 10 Sec Memory Limit: 64 MB Submit: 315 Solved: 237 [Submit][Status] ...
- bzoj 2073:[POI2004]PRZ 状压DP
Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍 ...
- 【BZOJ2073】[POI2004]PRZ 状压DP
[BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...
- 【bzoj2073】[POI2004]PRZ 状态压缩dp
题目描述 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍过桥时只能分批 ...
- 【bzoj2073】[POI2004]PRZ
Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍 ...
- 洛谷P5911 [POI2004]PRZ
Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍 ...
最新文章
- 融资关键技巧一5分钟 ,8个部分
- ECharts 交互组件概述
- 学习使用Markdown最基础的语法(编辑器通用)
- go gdb调试 参数设置 减小执行文件体积
- 暴力解决:InvocationException: GraphViz‘s executables not found
- Dapr 运用之集成 Asp.Net Core Grpc 调用篇
- u8转完看不到菜单_填制凭证界面上的菜单看不见
- matlab绝对均值,MATLAB中均值、方差、均方差的计算方法
- python日历代码_python日历代码
- 迪杰斯特拉算法(求最短路径)
- 【JAVA】JSON随机值生成工具类
- 【Paper笔记】Complement Objective Training
- 板块分析:筑底阶段 智能家居开启蓝海
- 配置Web.config文件显示错误信息
- 全触屏智能之战 三星i908E对比iPhone 3G
- pikachu Over permission 越权(皮卡丘漏洞平台通关系列)
- proxychains替代品polipo
- 硕士学位数据分析师工资_值得拥有数据科学方面的硕士学位
- [Linux Kernel] memory-barriers 内存屏蔽 官方文档
- java的密文发送_Java密文加密方式(一)AES