背包
#include<stdio.h> #include<string.h> int f[10005]; int max(int a,int b) { return a>b?a:b; } int main() { int icase,n,i,j; scanf("%d",&icase); while(icase--) { memset(f,0,sizeof(f)); scanf("%d",&n); for(i=1;i<=3;i++) { for(j=1;j<=n;j++) { if(i==1&&j>=150) { f[j]=max(f[j],f[j-150]+150); } if(i==2&&j>=200) { f[j]=max(f[j],f[j-200]+200); } if(i==3&&j>=350) { f[j]=max(f[j],f[j-200]+200); } } } printf("%d\n",n-f[n]); } return 0; }