3 solutions
-
2
#define ll long long #include<bits/stdc++.h> using namespace std; int ts1,ts2,te1,te2; //时间输入 char cc; //冒号输入 int n,T; //T 为时间限制 int t[10005],c[10005],p[10005]; int dp[10005]={}; //单数组存dp值 int main(){ cin>>ts1>>cc>>ts2>>te1>>cc>>te2>>n; //利用cc白嫖冒号 T=60*(te1-ts1)+(te2-ts2); //计算时间 for(int i=0;i<n;i++) cin>>t[i]>>c[i]>>p[i]; for(int i=0;i<n;i++){ if(!p[i]) for(int j=t[i];j<=T;j++) dp[j]=max(dp[j],dp[j-t[i]]+c[i]); else for(int k=1;k<=p[i];k++) for(int j=T;j>=t[i];j--) dp[j]=max(dp[j],dp[j-t[i]]+c[i]); } //混合背包即可 cout<<dp[T]<<"\n"; return 0; }
简简单单 cc白嫖操作来源于hyd综合证3号患者
-
2
P1833 樱花
简简单单,混合背包问题罢了(时间计算看代码)
代码:
#include<bits/stdc++.h> using namespace std; int v[114514],w[114514],m[114514];//题目要求,v=C,w=T,m=P int dp[114514];//dp数组 int n,W;//W=Te-Ts int tshh,tsmm,tehh,temm;//数据格式 char c1,c2;//承接冒号,直接骗过题目 void dcbb(int n,int W) //混合背包二进制拆分(牢湿ppt上有) { for(int i=1; i<=n; i++) { for(int k=1; m[i]>0; k<<=1) { int x=min(k,m[i]); for(int j=W; j>=w[i]*x; j--) { dp[j]=max(dp[j],dp[j-w[i]*x]+x*v[i]); } m[i]-=x; } } } int main() { cin>>tshh>>c1>>tsmm>>tehh>>c2>>temm>>n;//题目输入格式,c1,c2可以白嫖冒号 W=(tehh-tshh)*60+(temm-tsmm);//计算方式,由四大变量计算分钟 for(int i=1; i<=n; i++) { cin>>w[i]>>v[i]>>m[i];//输入 if(m[i]==0)m[i]=1441;//鉴于题目要求及题目给定时间在一天之内,当分钟数>1440时,相当于题目要求的时间无限 } dcbb(n,W);//调用函数 cout<<dp[W]; return 0; }
-
1
#include<cstdio> #include<algorithm> using namespace std; long long n; long long dp[10005]; long long t[10005],mx[10005],cs[10005]; long long h1,m1,h2,m2,m; long long ans,shu[100005],sj[100005],zcs; int main() { scanf("%lld:%lld %lld:%lld %lld",&h1,&m1,&h2,&m2,&n); m=(h2-h1)*60+(m2-m1); for(int i=1;i<=n;i++) { scanf("%lld%lld%lld",&t[i],&mx[i],&cs[i]); } for(int i=1;i<=n;i++) { if(cs[i]==0) { cs[i]=100000; } for(int j=1;j<=cs[i];j*=2) { ans++; shu[ans]=mx[i]*j; sj[ans]=t[i]*j; cs[i]-=j; } if(cs[i]!=0) { ans++; shu[ans]=mx[i]*cs[i]; sj[ans]=t[i]*cs[i]; } } for(int i=1;i<=ans;i++) { for(int u=m;u>=sj[i];u--) { dp[u]=max(dp[u],dp[u-sj[i]]+shu[i]); } } printf("%lld\n",dp[m]); return 0; }
- 1
Information
- ID
- 1034
- Time
- 1000ms
- Memory
- 128MiB
- Difficulty
- 5
- Tags
- # Submissions
- 22
- Accepted
- 13
- Uploaded By