1019 Problem S

原创 2016年05月30日 09:46:19
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.<br>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&lt;N&lt;1000) kinds of facilities (different value, different kinds).<br>
 

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<V<=50 --value of facility) and an integer M (0<M<=100 --corresponding number of the facilities) each. You can assume that all V are different.<br>A test case starting with a negative integer terminates input and this test case is not to be processed.<br>
 

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.<br>
 

Sample Input
2 10 1 20 1 3 10 1 20 2 30 1 -1



解题思路:是一道01背包问题,要么是一个大一个小,要么就是两个相同,所有那个较小的数字最大只是总和的一半,用sum/2套上01背包...

#include<iostream>
using namespace std;
int max(int a,int b)
{
  if(a > b)
    return a;
  else
    return b;
}
int main()
{
    int f[200047],val[200047];
    int t,n,i,j,k,l,sum,x,y;
    while(cin>>n&&n>0){
        memset(val,0,200047);
        memset(f,0,200047);
        sum = 0;
        l = 0;
        for(i = 0 ; i < n ; i++)
            {
                cin>>x>>y;
                for(int p=0 ; p<y ; p++)
                    {
                        val[l++] = x;
                        sum+=x;
                    }
            }
            for(i = 0 ; i < l ; i++)//01背包
            {
                for(j = sum/2 ; j >= val[i]; j--)
                    {
                        f[j] = max(f[j],f[j-val[i]]+val[i]);
                    }
            }
            cout<<sum-f[sum/2]<<" "<<f[sum/2]<<endl;
    }
  return 0;
}


【模拟】【HDU1443】 Joseph

Joseph Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total S...
  • zy691357966
  • zy691357966
  • 2014年10月01日 20:10
  • 971

Day 3 网络流

Day3 电子笔记(网络流): 备注:上午 网络流,下午 计算几何 线性规划(基于 单纯性 做法)可以代替网络流,但是难写、难理解 不需要 建模(比网络流好的地方),时间复杂度更玄学 Dini...
  • qq_35776409
  • qq_35776409
  • 2017年05月01日 07:58
  • 164

【数论】poj1777 Vivian's Problem(梅森素数)

题意:给定k个数,然后为每个数添加一个幂ei(0=如果M的所有因子的和可以写成2^x,求x的最大值,如果没有条件满足,输出NO。 刚看到题没什么思路,解题需要一些结论。 1:梅森素数...
  • miku23736748
  • miku23736748
  • 2016年08月06日 14:19
  • 558

Hihocoder 1424 Asa's Chess Problem (有源汇上下界最小费用流)

ProblemAsa comes up with a chess problem. There are N×N chesses on a board with N×N grids, one chess...
  • DorMOUSENone
  • DorMOUSENone
  • 2017年07月17日 12:55
  • 1067

Linux用户管理与权限

用户管理与权限 实验目的: 掌握用户与组管理 掌握高级权限的使用 掌握访问控制列表   实验步骤: 步骤一、用户管理 创建用户useradd的几个参数: -c描述 -d 家目录 -u uid号 -g ...
  • VmBoys
  • VmBoys
  • 2016年05月12日 13:40
  • 1160

华为机试 之 joseph环

一:首先科普一下约瑟夫问题的数学方法        (1)  无论是用list实现还是用vector实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,...
  • u010700335
  • u010700335
  • 2014年10月15日 11:26
  • 968

ural1019Line Painting(离散化,线段树)

题目链接:ural1019 跟poj2528(题解)离散方法相同,不过这道题离散化后还要记录每个数离散前的值 /*ural 1019 Line Painting 线段树区间成段覆盖 题目大意: 给一条...
  • u010728156
  • u010728156
  • 2013年12月05日 21:03
  • 703

poj1019 n的位数+规律

题目链接:http://poj.org/problem?id=1019 题目大意:给你一个串112123123412345……问第n位的数字是多少。n 思路:首先我们分析这个字符串可以看出...
  • qq_24477135
  • qq_24477135
  • 2016年06月03日 16:20
  • 473

Machine Schedule(最小点覆盖=最大匹配)

Machine Schedule Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 12012 ...
  • Enjoying_Science
  • Enjoying_Science
  • 2014年11月06日 21:07
  • 870

2017浙江理工校赛 A、D、I 待补完

可做题很多,这几天补完! Problem A: 回文 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 1672  Solved: 517 De...
  • kyoma
  • kyoma
  • 2017年03月22日 21:04
  • 293
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:1019 Problem S
举报原因:
原因补充:

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