题目链接:

BZOJ1222

Luogu2224

题号不错

这种类型的\(DP\)是第二次见了,不过第一次是刚学的时候了,现在早就忘了,思想还是很神的。

看到时间\(\le 5\)也能猜到很重要了。

设\(f_{[i],[j]}\)表示前\(i\)件物品,\(A\)机器用时\(j\)秒时\(B\)机器最短用时。

为了避免分类讨论,如果\(a,b,c\)为\(0\)则改成\(+\infty\)

那么有如下转移方程式:

\[ f_{[i],[j]}= \begin{cases} f_{[i-1],[j-a]} & (a\le j)\\ f_{[i-1],[j]}+b\\ f_{[i-1],[j-c]}+c &(c\le j) \end{cases} \]

为什么不用考虑顺序?

因为对于所有空隙,一定可以通过适当的调整来拼在一起,保证答案的正确性。

这题还需要一定的毒瘤常数优化。

#include <cstdio>
#include <cstring>inline int Min(int a,int b){return a<b?a:b;}
inline int Max(int a,int b){return a>b?a:b;}const int Inf=0x3f3f3f3f;
int n,Ans=Inf,Up;
int f[30015];int main()
{scanf("%d",&n);memset(f,0x3f,sizeof f),f[0]=0;for(register int a,b,c;n--;){scanf("%d%d%d",&a,&b,&c);Up+=Max(a,c);a?0:a=Inf;b?0:b=Inf;c?0:c=Inf;for(register int i=Up;i>=0;--i){b==Inf?f[i]=Inf:f[i]+=b;if(a<=i)f[i]=Min(f[i],f[i-a]);if(c<=i)f[i]=Min(f[i],f[i-c]+c);}}for(int i=0;i<=Up;++i)Ans=Min(Ans,Max(i,f[i]));printf("%d\n",Ans);return 0;
}

转载于:https://www.cnblogs.com/LanrTabe/p/10184799.html

[BZOJ1222/Luogu2224][HNOI2001]产品加工相关推荐

  1. 【bzoj1222】[HNOI2001]产品加工 背包dp

    题目描述 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机器共同进行加工 ...

  2. bzoj1222: [HNOI2001]产品加工

    一开始以为是费用流..然后搞不出来,路牌是DP,想一想 f[i][j]表示加工到第i个产品,然后A用时j,B用时的最小值 那么f[i][j]=max(f[i-1][j-a[i]],f[i-1][j]+ ...

  3. 【BZOJ 1222】 [HNOI2001] 产品加工(DP)

    Description 某加工厂有A.B两台机器,来加工的产品可以由其中任何一台机器完成,或者两台机器共同完成.由于受到机器性能和产品特性的限制,不同的机器加工同一产品所需的时间会不同,若同时由两台机 ...

  4. [HNOI2001] 产品加工

    题目类型:\(DP\) 传送门:>Here< 题意:有\(N\)个零件,每个零件有三种选择,在\(A\)机器加工,在\(B\)机器加工,同时在\(AB\)加工.其中所需要的时间分别为\(t ...

  5. BZOJ 1221: [HNOI2001] 软件开发(最小费用最大流)

    不知道为什么这么慢.... 费用流,拆点.... --------------------------------------------------------------------------- ...

  6. 专题·置换【including 置换,置换快速幂,洛谷·[HNOI2001]洗牌机

    前言:若您手中有一本<组合数学>,那么请翻到P330看书吧,书上讲的是真的好.本文也基本参考该书讲解] 本篇博客算是后期两周内会写的一篇关于Polya定理的专题的前置知识] 目录 一.置换 ...

  7. 技术分享:一种电镀厚金产品加工工艺研究

    1 前 言 PCB表面处理工艺众多,客户会根据焊接强度.焊接次数.存放时间.使用环境.器件大小.焊接方式.装配方式和成本等综合考量选择相应的表面处理工艺,其中一种印制线路板,客户用于测试或者作为程序写 ...

  8. [BZOJ 1221][HNOI2001]软件开发(费用流)

    Description 某软件公司正在规划一项n天的软件开发计划,根据开发计划第i天需要ni个软件开发人员,为了提高软件开发人员的效率,公司给软件人员提供了很多的服务,其中一项服务就是要为每个开发人员 ...

  9. bzoj 1221: [HNOI2001] 软件开发

    最小费用最大流 /**************************************************************Problem: 1221User: lxy8584099 ...

最新文章

  1. 【Harvest源码分析】GetWaveformAndSpectrumSub函数
  2. shell scripts 之 代码量统计
  3. 你真的会玩SQL吗?和平大使 内连接、外连接
  4. mapreduce的规约(Combiner)
  5. http://www.appinn.com/bookmark-manager-chrome/
  6. 采购订单单价金额屏蔽
  7. Modelsim 后仿真操作步骤之二——用Modelsim单独进行后仿真
  8. 2016年程序员如何提高自己的方法有哪些?
  9. 树莓派4bpython串口通信解读数据_树莓派基础实验36:通用串口通信实验
  10. 解决Eclipse中文乱码的问题
  11. java:linux上找出最耗资源的线程方法
  12. 推荐一款在线工具-程序员的工具箱
  13. 桌面移到D盘回移不回去了怎么办
  14. 服务器打不开jpg的文件,JPEG或JPG图片文件文件受损打不开,4种方法教你快速恢复!...
  15. ctrypto-js中,DES解密的iv向量处理
  16. 微信公众号的简单常识
  17. Apple Developer注册教程
  18. android6.0在状态栏添加一键截屏
  19. 安装C3D v1.0提取视频特征
  20. Aspose.Words for .NET使用教程(七):将文档转换为EPUB

热门文章

  1. 征战蓝桥 —— 2014年第五届 —— C/C++A组第4题——史丰收速算
  2. 第六章 定积分的应用 —— 第一节 定积分的元素法
  3. 【Qt】数据库SQL接口层
  4. springboot切面返回值_SpringBoot实战15-Spring基础-AOP
  5. python数据类型转换原因_浅谈Python数据类型之间的转换
  6. C++代码片段(三)过滤可变模板参数中某些类型的变量
  7. php写文件 效率,php中读写文件与读写数据库的效率_PHP教程
  8. php mysql 内存溢出_关于MySQL的整型数据的内存溢出问题的应对方法_MySQL
  9. Linux中的进程组及会话
  10. linux中断的上半部和下半部