Problem-S

原创 2016年05月30日 22:09:26

概述:给出一些金额和数量,求出如何分才能最接近a的值且不超出b的值。

思路:求出给的金额的总和,然后平分,转换为一道01背包的题目。

感想:这道题做了一个周了,但是思路不是我自己的,因为完全背包不熟,当时又恰巧发现了这个方法,将完全背包转换为01背包,很令人惊艳的思路,所以当时就把这道题按照人的思路做了出来,然后看了看别的完全背包,结果好像并不是通用的,但是这个可以的。

#include<iostream>
#include<fstream>
#include<cmath>
#include<string.h>

using namespace std;

int max(int a, int b)
{
	return a>=b ? a : b;
}

int val[20005];
int dp[2000005];

int main()
{
	//ifstream cin("in.txt");
	int n;
	while (cin>>n&&n>0)
	{
		memset(val, 0, sizeof(val));
		memset(dp, 0, sizeof(dp));
		int sum = 0, num = 0;
		int a, b;
		for (int i = 0;i < n;i++)
		{
			cin >> a >> b;
			while (b--)
			{
				val[num++] = a;
				sum += a;
			}
		}
		for (int i = 0;i < num;i++)
		{
			for (int j = sum / 2;j >= val[i];j--)
			{
				dp[j] = max(dp[j], dp[j - val[i]] + val[i]);
			}
		}
		cout << sum - dp[sum / 2] << " " << dp[sum / 2] << endl;
	}
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【hdu 3861】The King’s Problem(Tarjan缩点+匈牙利算法)

风花雪月,流连旧时景

【SPOJ-NAGAY】Joseph’s Problem【余数求和】【分块】

题意: 给出n,k。求 n和k都是10^18,sqrt(k)理论上过不了,但是还是过了... 题挺好。 这题的分块和一般的分块不太一样,直接看图吧。 ...

hdu3861 The King’s Problem

hdu终于开服了,这题果断AC,题目大意国王要给城市划分州,要求是如果互相联通的要画在一个州,并且相连两个州之间不能有城市,可以想到是强连通+最小路径覆盖,然后就比较好求解了,注意这里数组要开到100...

hdu 3861 The King’s Problem

求单侧连通分量的最小个数。求强连通分量后,在缩点后的图上用二分图匹配找最小路径覆盖即可。党写的缩点建图,我的匈牙利。。。#include #include #include #include ...

The King’s Problem(tarjan求强连通分量缩点+匈牙利求有向无环图的最小路径覆盖)

Link:http://acm.hdu.edu.cn/showproblem.php?pid=3861 The King’s Problem Time Limit: 2000/1000 M...

hdu 3861 The King’s Problem(缩点+最小路径覆盖)

The King’s Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe...

HDU 3861 The King’s Problem

http://acm.hdu.edu.cn/showproblem.php?pid=3861#include #include using namespace std; #define N 5005 ...
  • ME4546
  • ME4546
  • 2011-07-19 19:55
  • 1261

Central Europe Regional Contest 2012 Problem C: Chemist’s vows

http://acm.hunnu.edu.cn/online/problem_pdf/CERC2012/C.pdf HUNNU11372 模拟题,直接暴力既可,比赛的时候想过这种方法,但是没敢动手...

Problem J. Journey to the “The World’s Start”

存个代码 #include #include #include #include #define lson root*2,l,Mid #define rson root*2+1,Mid+1,...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)