码迷,mamicode.com
首页 > 其他好文 > 详细

题解:砝码称重

时间:2021-06-02 13:32:00      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:scanf   方案   bit   sizeof   没有   names   namespace   题目   eof   

题目:

技术图片
(注:T1)

想法

这道题是一个方案背包的类似板子的题,但是我并没有第一遍切,为什么呢?因为我在一个循环里把num[]数组写成了a[]数组,结果样例太水了被我过了,后来发现才9分,回头检查才发现数组写错了。太智障了,下次要认真点

代码:

#include<bits/stdc++.h>
using namespace std;
int a[1000001];
int dp[100001];
int n;
int num[100001];
int weigh[10] = {0,1,2,3,5,10,20};
int ans = 0;
int tot = 0;
int main()
{
    for(int i = 1;i <= 6; i++){
	    scanf("%d" ,&a[i]);
	    tot = tot + a[i] * weigh[i];
    }
    dp[0] = 1;
    for(int i = 1;i <= 6; i++){
	    memset(num,0,sizeof(num));
	    for(int j = a[i]; j <= tot; j++){
		    if(num[j - a[i]] > num[i]) continue;
		    if(dp[j] == 0 && dp[j - a[i]]){
			    dp[j] = 1;
			    num[j] = num[j - a[i]] + 1;
			    ans++;
		    }  
	    }
    }
    printf("Total=%d" ,ans);
    return 0;
}

/*
1 1 0 0 0 0
*/

题解:砝码称重

标签:scanf   方案   bit   sizeof   没有   names   namespace   题目   eof   

原文地址:https://www.cnblogs.com/Crazyman-W/p/14819712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!