hdu 1248

来源:互联网 发布:cnc数控编程基础 编辑:程序博客网 时间:2024/05/17 03:02
#include<stdio.h>#include<string.h>#define N 10010int c1[N],c2[N];int a[5]={0,150,200,350};int main(){int t,i,j,k,n,s;scanf("%d",&t);while(t--){scanf("%d",&n);memset(c1,0,sizeof(c1));memset(c2,0,sizeof(c2));for(i=0;i<=n;i=i+150)c1[i]=1;for(i=2;i<=3;i++){for(j=0;j<=n;j++)for(k=0;k+j<=n;k=k+a[i])c2[k+j]+=c1[j];for(j=0;j<=n;j++){c1[j]=c2[j];c2[j]=0;}}for(i=n;i>=0;i--)if(c1[i]!=0){s=i;break;}printf("%d\n",n-s);}return 0;}#include<stdio.h>int main(){    int t,n;    scanf("%d",&t);    while(t--)    {        scanf("%d",&n);        if(n<200)            printf("%d\n",n%150);        else if(n>=200&&n<300)            printf("%d\n",n%200);        else            printf("%d\n",n%50);    }    return 0;}#include<stdio.h>#include<string.h>int dp[10010];int max(int a,int b){return a>b?a:b;}int main(){int t,i,j,n;scanf("%d",&t);int a[4]={150,200,350};while(t--){scanf("%d",&n);memset(dp,0,sizeof(dp));for(i=0;i<3;i++){for(j=a[i];j<=n;j++)dp[j]=max(dp[j],dp[j-a[i]]+a[i]);}printf("%d\n",n-dp[n]);}return 0;}

0 0
原创粉丝点击