BZOJ4145_The Prices_KEY
看到M<=16经典状态压缩的数据范围,考虑题目。
一道类似于背包的题目。
设f[i][j]表示前i个商店,物品购买状态为j。
先将f[i][j]加上w[i](到i的路费),转移一次,在与同状态的前一商店取min就好了。
code:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std; int N,M,a[][],w[];
int f[][<<]; int main()
{
scanf("%d%d",&N,&M);
for(int i=;i<=N;i++){
scanf("%d",&w[i]);
for(int j=;j<=M;j++)scanf("%d",&a[i][j]);
}
for(int S=;S<<<M;S++)f[][S]=1e9;
for(int i=;i<=N;i++){
for(int S=;S<<<M;S++)f[i][S]=f[i-][S]+w[i];
for(int S=;S<<<M;S++)
for(int j=;j<=M;j++)
if(!(S&(<<j-)))f[i][S|(<<j-)]=min(f[i][S|(<<j-)],f[i][S]+a[i][j]);
for(int S=;S<<<M;S++)f[i][S]=min(f[i][S],f[i-][S]);
}
printf("%d",f[N][(<<M)-]);
return ;
}
BZOJ4145_The Prices_KEY的更多相关文章
随机推荐
- SQLSERVER的 筛选索引(Fiter Index)
fiter index(筛选索引)是SQL Server的一项功能,可使此数据库与众不同. 筛选索引的概念 SQL Server中常用的索引是一种物理结构,它包含来自所有行的一组选定列的值 在一张桌子 ...
- 转:c# 安装包制作
.net Windows服务程序和安装程序制作 最近项目中用到window服务程序,以前没接触过,比较陌生,花了两天的时间学习了下,写了个简单的服务,但在制作安装程序的时候,参照网上很多资料,却都制作 ...
- GitBlit集成AD域LDAP
GitBlit的配置文件: gitlblit安装目录下的 /data/gitblit.properties ,用记事本或其他编译器打开即可. 集成AD域的LDAP操作步骤 打开配置文件,添加以下内 ...
- 铁乐学python_day01-和python有关的唠嗑
铁乐学python_day01-和python有关的唠嗑 文:铁乐与猫 2018-03-16 01_python的历史 python的创始人为荷兰人吉多·范罗苏姆(Guido van Rossum). ...
- session更换存储,实现在多台服务器共享
场景 web服务器有多台,每台服务器都会存贮自己的session,session无法在多台服务器共享.所以就需要更换session的存贮空间,存贮在一个共用的空间.通常为了读写速度,我们会选择存贮在内 ...
- java中常用Redis操作
stringRedisTemplate.opsForValue().set("test", "100",60*10,TimeUnit.SECONDS);//向 ...
- ZT 计算一个无符整数中1Bit的个数(1) 2010-04-20 10:52:48
计算一个无符整数中1Bit的个数(1) 2010-04-20 10:52:48 分类: C/C++ [转]计算一个无符整数中1Bit的个数(1) Count the number of bits ...
- 映射函数map
映射函数map 语法: map(function, iterable) 迭代对象中 的每一个元素进行映射, 分别执行function函数 例子: ls =[1,2,3,4,5,6] def func ...
- FTP工具FileZilla&WinSCP与FTP类库FluentFTP
FileZilla Filezilla分为client和server.其中FileZilla Server是Windows平台下一个小巧的第三方FTP服务器软件,系统资源也占用非常小,可以让你快速简单 ...
- 面向对象课程 - 寒假第三次作业 - C++计算器项目初始部分
C++计算器项目初始部分 零.项目源文件地址 传送门:calculator 一.项目信息相关: 项目:Calculator 版本:1.0 日期:2016.2.16 实现: 基本的操作界面 对四则运算表 ...