P2224 [HNOI2001]产品加工
2021/9/14 23:35:14
本文主要是介绍P2224 [HNOI2001]产品加工,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Jisoo
这种背包是不是把一维扔进状态就都能做了啊
\(dp_{i,j}\)表示到了第i个任务的时候A机器工作了j时间,转移显然
有点卡时间,注意常数优化
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> using namespace std; int n; int p; int t[6005][4]; int dp[2][300005]; int sum; int main(){ scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%d%d%d",&t[i][0],&t[i][1],&t[i][2]); sum=sum+max(max(t[i][0],t[i][2]),t[i][1]); } memset(dp,0x3f,sizeof(dp)); dp[0][0]=0; for(int i=1;i<=n;++i){ p^=1; int pre=p^1; memset(dp[p],0x3f,sizeof(dp[p])); for(int j=0;j<=sum;++j){ if(t[i][0]!=0) dp[p][j]=min(dp[pre][j]+t[i][0],dp[p][j]); if(j>=t[i][2]&&t[i][2]!=0){ dp[p][j]=min(dp[p][j],dp[pre][j-t[i][2]]+t[i][2]); } if(j>=t[i][1]&&t[i][1]!=0){ dp[p][j]=min(dp[p][j],dp[pre][j-t[i][1]]); } } } int ans=999999999; for(int i=0;i<=sum;++i){ ans=min(ans,max(dp[n&1][i],i)); } cout<<ans; return 0; }
这篇关于P2224 [HNOI2001]产品加工的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南