BZOJ 2073 [POI2004]PRZ(状压DP)
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2073
【题目大意】
任何时候队伍在桥上的人都不能超过一定的限制.
所以这只队伍过桥时只能分批过,当一组全部过去时,下一组才能接着过.
队伍里每个人过桥都需要特定的时间,当一批队员过桥时时间应该算走得最慢的那一个,
每个人也有特定的重量,我们想知道如何分批过桥能使总时间最少.
【题解】
我们首先预处理出每种组合的总重量和过桥需要的时间,
之后顺序枚举集合,枚举其子集,如果符合拆分要求则进行转移即可。
【代码】
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int INF=0x3f3f3f3f;
const int N=65536;
int W,n,t[20],w[20],dp[N],s[N],d[N];
int main(){
memset(dp,INF,sizeof(dp));
scanf("%d%d",&W,&n);
int all=1<<n;
for(int i=1;i<=n;i++)scanf("%d%d",&t[i],&w[i]);
for(int i=1;i<all;i++){
for(int j=1;j<=n;j++){
if(i&(1<<(j-1))){d[i]=max(d[i],t[j]);s[i]+=w[j];}
}
}dp[0]=0;
for(int i=1;i<all;i++){
for(int j=i;j;j=i&(j-1))if(s[j]<=W)dp[i]=min(dp[i],d[j]+dp[i^j]);
}printf("%d\n",dp[all-1]);
return 0;
}
BZOJ 2073 [POI2004]PRZ(状压DP)的更多相关文章
- BZOJ 2073: [POI2004]PRZ( 状压dp )
早上这道题没调完就去玩NOI网络同步赛了.... 状压dp , dp( s ) 表示 s 状态下所用的最短时间 , 转移就直接暴力枚举子集 . 可以先预处理出每个状态下的重量和时间的信息 . 复杂度是 ...
- 【BZOJ2073】[POI2004]PRZ 状压DP
[BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...
- [POI2004] PRZ - 状压dp
很简单的子集枚举状压dp 这个 (j-1)&i 的子集枚举是真的骚气 #include <bits/stdc++.h> using namespace std; int W,n,t ...
- BZOJ_2073_[POI2004]PRZ_状压DP
BZOJ_2073_[POI2004]PRZ_状压DP 题意: 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上 ...
- Bzoj: 2073 [POI2004]PRZ 题解
2073: [POI2004]PRZ Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 401 Solved: 296[Submit][Status][D ...
- bzoj 2073: [POI2004]PRZ
2073: [POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍在桥上的 ...
- BZOJ 1087 题解【状压DP】
1087: [SCOI2005]互不侵犯King Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3112 Solved: 1816[Submit][ ...
- BZOJ 4000: [TJOI2015]棋盘( 状压dp + 矩阵快速幂 )
状压dp, 然后转移都是一样的, 矩阵乘法+快速幂就行啦. O(logN*2^(3m)) ------------------------------------------------------- ...
- BZOJ 4057: [Cerc2012]Kingdoms( 状压dp )
状压dp.... 我已开始用递归结果就 TLE 了... 不科学啊...我dp基本上都是用递归的..我只好改成递推 , 刷表法 将全部公司用二进制表示 , 压成一个数 . 0 表示破产 , 1 表示没 ...
- bzoj 2669 题解(状压dp+搜索+容斥原理)
这题太难了...看了30篇题解才整明白到底咋回事... 核心思想:状压dp+搜索+容斥 首先我们分析一下,对于一个4*7的棋盘,低点的个数至多只有8个(可以数一数) 这样的话,我们可以进行一个状压,把 ...
随机推荐
- 聂老师的考验(反向bfs)
题目链接:http://113.240.233.2:8081/JudgeOnline/problem.php?id=1121 这个题看起来要多次使用bfs,其实只要换个思维就会发现这就是一个简单的bf ...
- bzoj 1965 数学
首先我们可以发现每张牌的对应关系,假设序号为x的牌,经过一次洗牌后的位置为: 2*x x<=n/2 2*(x-n/2)-1 x>n/2 那么我们可以将下面的式子化简,变成2*x-n ...
- CSS3 动画实现方法大全
常用效果总结(需要引用animate.css) <!doctype html> <html lang="en"> <head> <meta ...
- Windows 提权对照表 精确到sp版本号
https://www.securitysift.com/download/MS_privesc_and_exploits_table.csv
- Java多线程学习(三)volatile关键字
转载请备注地址:https://blog.csdn.net/qq_34337272/article/details/79680693 系列文章传送门: Java多线程学习(一)Java多线程入门 Ja ...
- perl 复制exe文件的简单方法
use warnings; use strict; open EXE, "cmd.exe" or die "Can not open cmd.exe:$!\n" ...
- linux驱动基础系列--Linux mmc sd sdio驱动分析
前言 主要是想对Linux mmc子系统(包含mmc sd sdio)驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动.块设备驱动.设备模型等也不进行详细说明原 ...
- python实战===itchat
import itchat itchat.login() friends=itchat.get_friends(update=True)[0:] male=female=other=0 for i i ...
- openboot的项目
http://docs.oracle.com/cd/E19201-01/821-0901-10/OK_OBP.html https://www.openfirmware.info/OpenBIOS h ...
- C后端设计开发 - 第5章-内功-数据结构下卷
正文 第5章-内功-数据结构下卷 后记 如果有错误, 欢迎指正. 有好的补充, 和疑问欢迎交流, 一块提高. 在此谢谢大家了.