关闭

|NOIOJ|动态规划|2989:糖果

69人阅读 评论(0) 收藏 举报
分类:

http://noi.openjudge.cn/ch0206/2989/statistics/

01背包,不知道为什么RE了一个点以后如果查明原因再改

#include<iostream>
#include<cstdio>  
#include<cstring>   
#include<algorithm> 
#define ms(i,j) memset(i, j, sizeof(i)); 
using namespace std;
int n,k;
int w[105];
int f[1000005]; 
int main()  
{
	scanf("%d%d", &n ,&k);
	int total = 0;
	for (int i=1;i<=n;i++) 
	{
		scanf("%d", &w[i]);
		total += w[i];
	}
	ms(f,0); 
	int orz = 0;
	for (int i=1;i<=n;i++)
	{
		for (int j=total;j>=w[i];j--)
		{
			f[j] = max(f[j], f[j-w[i]]+w[i]);
			if (f[j]%k==0) orz = max(orz, f[j]);
		}
	}
	printf("%d\n", orz);
    return 0;  
}  


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:35696次
    • 积分:3152
    • 等级:
    • 排名:第10874名
    • 原创:296篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    常用OJ