H-coins

最开始超时,因为输入函数,所以改成了scanf这些,然后数组太大,还是超时,之后太小了程序崩溃,改完这些一直wa,然后我就没办法了

无奈脸

#include <stdio.h>  
#include <algorithm>  
#include <string.h>  
  
int dp[100005];  
int sum[100005];  
int v[105],c[105];  
  
int main()  
{  
    int i,j,k,n,m;  
    while(~scanf("%d%d",&n,&m),n+m)  
    {  
        for(i = 1;i<=n;i++)  
        scanf("%d",&v[i]);  
        for(i = 1;i<=n;i++)  
        scanf("%d",&c[i]);  
        memset(dp,0,sizeof(dp));  
        dp[0] = 1;  
        int ans = 0;  
        for(i=1;i<=n;i++)  
        {  
            memset(sum,0,sizeof(sum));  
            for(j = v[i];j<=m;j++)  
            {  
                if(!dp[j] && dp[j-v[i]] && sum[j-v[i]]<c[i])  
                {  
                    dp[j] = 1;  
                    sum[j] = sum[j-v[i]]+1;  
                    ans++;  
                }  
            }  
        }  
        printf("%d\n",ans);  
    }  
  
    return 0;  
} 

  

posted @ 2016-08-11 16:30  阿银家的小贰  阅读(185)  评论(2编辑  收藏  举报