HDU 1171 Big Event in HDU

原创 2017年11月14日 19:56:56

Problem Description

Nowadays, we all know that Computer College is the biggest department in HDU. But, maybe you don’t know that Computer College had ever been split into Computer College and Software College in 2002. 
The splitting is absolutely a big event in HDU! At the same time, it is a trouble thing too. All facilities must go halves. First, all facilities are assessed, and two facilities are thought to be same if they have the same value. It is assumed that there is N (0

Input

Input contains multiple test cases. Each test case starts with a number N (0 < N <= 50 – the total number of different facilities). The next N lines contain an integer V (0

Output

For each case, print one line containing two integers A and B which denote the value of Computer College and Software College will get respectively. A and B should be as equal as possible. At the same time, you should guarantee that A is not less than B.

Sample Input


10 1 
20 1 

10 1 
20 2 
30 1 
-1

Sample Output

20 10 
40 40

题目大意:

输入一个数a,表示接下来有a种物品,数组m和n中分别存储物品的价值和个数,把这些物品分配给A和B,使两个人得到的价值尽可能相等,不相等的情况要保证A得到的价值大于B得到的价值。

C++

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int m[1005],n[1005];
int dp[250010];
int main()
{
    int a,b,c,d,e,f;
    while(cin>>a)
    {
        if(a<0)
            break;
        f=0;
        memset(dp,0,sizeof(dp));
        for(b=0;b<a;b++)
        {
            scanf("%d %d",&m[b],&n[b]);
            f=f+m[b]*n[b];
        }
        e=f/2;
        for(b=0;b<a;b++)
        {
            for(c=0;c<n[b];c++)
            {
                for(d=e;d>=m[b];d--)
                {
                    dp[d]=max(dp[d],dp[d-m[b]]+m[b]);
                }
            }
        }
        printf("%d %d\n",f-dp[e],dp[e]);
    }
    return 0;
}




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

相关文章推荐

hdoj 1171 Big Event in HDU (母函数)(背包)

Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others...

杭电 1171 Big Event in HDU

Big Event in HDU                                                   Time Limit: 10000/5000 MS (Java/...

【hdoj1171】Big Event in HDU(01背包)

Big Event in HDU 大略题意:   Hdu的计算机系曾分为计算机学院和软件学院,故原来学院的公共设施要尽可能均分给这两个新的学院,要求计算机学院分得的设施不能少于软件学院的 输...

杭电1171Big Event in HDU

Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other...
  • z8110
  • z8110
  • 2015年09月18日 18:39
  • 225

HDoj-1171-Big Event in HDU-母函数

Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other...

母函数之Big Event in HDU hdoj 1171

/* Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/O...

HDOJ--1171--Big Event in HDU

Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other...

HDOJ-1171-Big Event in HDU 解题报告

普通母函数。题意:有最多50种不同价值的机器,每种机器的价值不超过50并且数量不超过100,现在要把这些机器分成A和B两部分,使两部分机器的价值尽可能相等且A的价值不能够小于B。      ...
  • JZQT_T
  • JZQT_T
  • 2015年05月21日 18:56
  • 356

HDOJ 1171 Big Event in HDU解题报告

//错误的解答 //#include #include using namespace std; bool money[250002]; unsigned value[52]; unsigne...

Big Event in HDU 【HDOJ-1171-母函数】

Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:HDU 1171 Big Event in HDU
举报原因:
原因补充:

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