Bzoj: 2073 [POI2004]PRZ 题解
2073: [POI2004]PRZ
Time Limit: 10 Sec Memory Limit: 64 MB
Submit: 401 Solved: 296
[Submit][Status][Discuss]
Description
Input
Output
Sample Input
24 60
10 40
18 50
Sample Output
for(int j=i;j;j=(j-)&i)
{
if(sum[j]<=W) f[i]=min(f[i],ti[j]+f[i^j]);
}
j枚举出来就是i的所有子集。因此,我们还得预处理出来所有状态的总重量以及时间。然后就相当好搞了。据说复杂度可以证明为3^n。
#include <iostream>
#include <cstdlib>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <map>
#include <set>
#include <vector>
#define N 20
using namespace std;
int f[<<];
int n,t[N],w[N],W;
int sum[<<],ti[<<];
int main()
{
scanf("%d%d",&W,&n);
for(int i=;i<=n;i++)
{
scanf("%d%d",&t[i],&w[i]);
}
memset(f,0x7f,sizeof(f));
f[]=;
for(int i=;i<(<<n);i++)
{
for(int j=;j<=n;j++)
{
if((<<(j-))&i)
{
sum[i]+=w[j];
ti[i]=max(ti[i],t[j]);
}
}
}
for(int i=;i<(<<n);i++)
{
for(int j=i;j;j=(j-)&i)
{
if(sum[j]<=W) f[i]=min(f[i],ti[j]+f[i^j]);
}
}
printf("%d\n",f[(<<n)-]);
return ;
}
Bzoj: 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(状压DP)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2073 [题目大意] 任何时候队伍在桥上的人都不能超过一定的限制. 所以这只队伍过桥时只 ...
- BZOJ 2073: [POI2004]PRZ [DP 状压]
传送门 水题不解释 这道题的主要目的在于记录一个枚举子集的技巧 #include <iostream> #include <cstdio> #include <cstri ...
- 2073: [POI2004]PRZ
2073: [POI2004]PRZ Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 284 Solved: 213[Submit][Status][D ...
- bzoj 2073 暴力
2073: [POI2004]PRZ Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 442 Solved: 327[Submit][Status][D ...
- 【BZOJ2073】[POI2004]PRZ 状压DP
[BZOJ2073][POI2004]PRZ Description 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥. 桥已经很旧了, 所以它不能承受太重的东西. 任何时候队伍 ...
- BZOJ 1003 物流运输 题解 【SPFA+DP】
BZOJ 1003 物流运输 题解 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的 ...
- BZOJ 1191 超级英雄 Hero 题解
BZOJ 1191 超级英雄 Hero 题解 Description 现在电视台有一种节目叫做超级英雄,大概的流程就是每位选手到台上回答主持人的几个问题,然后根据回答问题的多少获得不同数目的奖品或奖金 ...
随机推荐
- discuz电脑访问手机版域名怎么跳转到电脑版本
用discuz论坛访问手机版本的域名不会自动跳转到电脑版本,而是会跳转到域名+misc.php?mod=mobile体验很不好.现提供修改方法:打开论坛根目录找到文件./source/class/di ...
- 手把手教你学会 基于JWT的单点登录
最近我们组要给负责的一个管理系统 A 集成另外一个系统 B,为了让用户使用更加便捷,避免多个系统重复登录,希望能够达到这样的效果--用户只需登录一次就能够在这两个系统中进行操作.很明显这就是单点登 ...
- Asp +Js 无刷新分页
Default.aspx代码 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" ...
- Android Studio 添加 Genymotion插件
原文:Android Studio 添加 Genymotion插件 1.下载Genymotion:官网地址,必须先注册才能下载,下载带有VirtualBox的版本 2.安装:安装时会连VirtualB ...
- C#图片灰度处理(位深度24→位深度8),用灰度数组byte[]新建一个8位灰度图像Bitmap 。
原文:C#图片灰度处理(位深度24→位深度8) #region 灰度处理 /// <summary> /// 将源图像灰度化,并转化为8位灰度图像. /// </summary> ...
- 为何只能在其关联的线程内启动timer?(Qt会检查一致性,否则就不执行)
为何只能在其关联的线程内启动timer? 在QTimer源码分析(以Windows下实现为例) 一文中,我们谈到: QTimer的是通过QObject的timerEvent()实现的,开启和关闭定时器 ...
- linux下mysql定时备份
1. 在服务器上建立备份文件的存放文件夹 sudo mkdir /usr/local/dbbackup 2. 编写备份脚本 vi dbbackup.sh 在里面编写如下内容 mysqldump -ur ...
- bootstrap组件和插件
一.用node.js读取文件 //引入fs模块 var fs= require ('fs'); // console.log(fs); //调用fs模块的readFile方法 fs.readFile( ...
- SYN4505型 标准同步时钟
SYN4505型 标准同步时钟 标准同步时钟电厂时间同步使用说明视频链接: http://www.syn029.com/h-pd-245-0_310_1_-1.html 请将此链接复制到浏览器打开观看 ...
- 一、Linux常用命令
1.ls 作用:列出文件信息,默认为当前目录下 语法: -a:列出所有的文件,包括以.开头的隐藏文件 -d:列出目录本身,并不包含目录中的文件 -h:和-l一起使用,文件大小人类易读 -l:长输出(“ ...