原题链接:
分析:dp[v]表示可以使用的钱为v时实际上用的钱。
饭卡(card)
1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int m,n,i,v,price[1001],dp[1001]; 8 int main() 9 {10 while(scanf("%d",&n)==1)11 {12 if(n==0)break;13 for(i=0;i =0;v--)25 {26 if(v-price[i]>=0&&dp[v-price[i]]+price[i]>dp[v])27 dp[v]=dp[v-price[i]]+price[i];28 }29 printf("%d\n",m-price[n-1]-dp[m-5]);30 }31 return 0;32 }33