BZOJ1222_ 产品加工_KEY
我们设f[i]表示用机器A加工,时间还剩下i时的最优加工时间。
对于每一个时间可以加工的物品,有以下几个选择:
1、用机器A加工
2、用机器B加工
3、A和B一起加工
所以得到方程:

f[j]+=a[i][2]//用机器B加工,所以时间还剩j。
f[j]=min(f[j],f[j-a[i][1])(j>=a[i][1])//用机器A加工,所以由j-a[i][1]转移来。
f[j]=min(f[j],f[j-a[i][3]]+a[i][3])//用A、B一起加工,因为A也要出力,B也要出力,在减去a[i][3]的同时也要加上a[i][3]。
code:
/**************************************************************
Problem: 1222
User: yekehe
Language: C++
Result: Accepted
Time:2084 ms
Memory:1052 kb
****************************************************************/ #include <cstdio>
using namespace std;
inline int read(){
char c;while(c=getchar(),(c<''||c>'')&&c!='-');int x=,y=;c=='-'?y=-:x=c-'';
while(c=getchar(),c>=''&&c<='')x=x*+c-'';return x*y;
}
inline int min(int x,int y){return x<y?x:y;}
inline int max(int x,int y){return x>y?x:y;}
int n,a[][],f[];
int main(){
n=read();
int m=;
for(int i=;i<=n;i++){
a[i][]=read();a[i][]=a[i][]==?:a[i][];
a[i][]=read();a[i][]=a[i][]==?:a[i][];
a[i][]=read();a[i][]=a[i][]==?:a[i][];
m+=min(min(a[i][],a[i][]),a[i][]);
}
f[]=;
for(int i=;i<=n;i++){
for(int j=m;j>=;j--){
f[j]+=a[i][];
if(j>=a[i][])f[j]=min(f[j],f[j-a[i][]]);
if(j>=a[i][])f[j]=min(f[j],f[j-a[i][]]+a[i][]);
}
}
int ans=;
for(int i=;i<=m;i++)ans=min(ans,max(i,f[i]));
printf("%d",ans);
}
BZOJ1222_ 产品加工_KEY的更多相关文章
- bzoj 1222: [HNOI2001]产品加工 dp
1222: [HNOI2001]产品加工 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 381 Solved: 218[Submit][Status ...
- Bzoj 1222: [HNOI2001]产品加工 动态规划
1222: [HNOI2001]产品加工 Time Limit: 15 Sec Memory Limit: 162 MBSubmit: 486 Solved: 298[Submit][Status ...
- 动态规划(奇异状态):HNOI 2001 产品加工
产品加工 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加 ...
- [HNOI 2001]产品加工
Description 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机 ...
- BZOJ1222[HNOI2001]产品加工——DP
题目描述 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工 ...
- 洛谷 P2224 [HNOI2001]产品加工 解题报告
P2224 [HNOI2001]产品加工 题目描述 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需 ...
- BZOJ 1222 产品加工(DP)
某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工,所完成任 ...
- 【DP】【P2224】】【HNOI2001】产品加工
传送门 Description 某加工厂有\(A\).\(B\)两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时 ...
- 洛谷P2224 [HNOI2001] 产品加工 [DP补完计划,背包]
题目传送门 产品加工 题目描述 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时 ...
随机推荐
- bep-10翻译
dht协议的目的是解放tracter服务器,将tracter的任务分布式存到各个客户端上(即维护资源文件的下载列表,从哪能下载到请求的文件): dht协议在get_peer请求获得peer信息后,就会 ...
- php中的foreach问题(1)
前言 php4中引入了foreach结构,这是一种遍历数组的简单方式.相比传统的for循环,foreach能够更加便捷的获取键值对.在php5之前,foreach仅能用于数组:php5之后,利用for ...
- MongoDB删除文档
db.collection.deleteOne() 删除单个文档db.collection.deleteMany() 删除多个文档db.collection.remove() 删除单/多个文档,db. ...
- Hibernate 基于主键的一对一关联关系随手记
@Test public void testSave() { Boss boss = new Boss(); boss.setName("A-老板"); Company compa ...
- Django 按时间来查找数据库中的数据
问题: 按时间来查找数据表中的数据. 前提: 1. 数据表student中有一个字段类型为DateField或者DateTimeField字段, 字段名是birthday. 2. 数据表中已经有些数据 ...
- anydesk重启脚本
1.restart.sh: #!/bin/sh sh /home/zhoushuo/anydeskTest/stop.sh echo 'zhoushuo'|sudo -S /usr/bin/anyde ...
- ssm小小整合
ssm整合: 首先是创建数据库: CREATE TABLE `user` ( `id` ) NOT NULL, `username` varchar() NOT NULL, `password` va ...
- SVN工具使用总结
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion ...
- mongo数据库基础语法
http://www.runoob.com/mongodb/mongodb-create-collection.html 很详细
- python单元测试unittest框架
环境:PyCharm 2016.2 + python 3.5 待测试的类:(Widget.py) 测试类:(Auto.py) 测试结果: 总结:1.第一步:先写好测试类2.第二步:导入unittest ...