简单背包题,写上是因为这个板子还不错,本校OJ有个恶心的地方,单kas输入的时候写成多kas会wa~~
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue> using namespace std; const int maxn=3e4+10; const int N=1e3+10; typedef long long LL; int wei[N],val[N],dp[maxn]; int main() { freopen("input.txt","r",stdin); int l,td,th,n,d; scanf("%d%d%d%d%d",&l,&td,&th,&n,&d); memset(dp,0,sizeof dp); if(td>=th){printf("Diana marries Humperdonkey\n");return 0;} int w,x; for(int i=0;i<n;i++) { scanf("%d%d",&w,&x); wei[i]=(l-x)*w*d; val[i]=w; } int m=(th-td)*l-1; for(int i=0; i<n; i++) { for(int j=m; j>=wei[i]; j--) dp[j] = max(dp[j],dp[j-wei[i]]+val[i]); } printf("%d\n",dp[m]); return 0; }
时间: 2024-10-10 05:38:01