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

原创 2013年12月03日 11:13:13

          Big Event in HDU

TimeLimit: 10000/5000 MS(Java/Others)    MemoryLimit: 65536/32768 K (Java/Others)
Total Submission(s):9181    AcceptedSubmission(s): 3173


ProblemDescription
Nowadays, we all know thatComputer College is the biggest department in HDU. But, maybe youdon't know that Computer College had ever been split into ComputerCollege 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 besame if they have the same value. It is assumed that there is N(0<N<1000) kinds of facilities(different value, different kinds).
 

Input
Input contains multiple testcases. 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 aninteger M (0<M<=100 --correspondingnumber of the facilities) each. You can assume that all V aredifferent.
A test case starting with a negative integer terminates input andthis test case is not to be processed.
 

Output
For each case, print one linecontaining two integers A and B which denote the value of ComputerCollege and Software College will get respectively. A and B shouldbe as equal as possible. At the same time, you should guaranteethat A is not less than B.
 

SampleInput
2 10 1 20 1 3 10 1 20 2 30 1 -1
 

SampleOutput
20 10 40 40

#include <iostream>
#include <cstdio>
using namespace std;
int date_value[51],date_num[51];//价值及个数
int c1[150000],c2[150000];//组成的最后价值
intmain(){
   int n;
   while(scanf("%d",&n),n>0){
       int i=0,j,k,len;
       memset(c1,0,sizeof(int)*130000);
       while(i<n){
           scanf("%d%d",&date_value[i],&date_num[i]);
           i++;
       }
       len=0;
       for(i=0;i<n;i++){
           c1[0]=1;
           len+=date_value[i]*date_num[i];
           for(j=0;j<=len;j++){
               for(k=0;k<=date_num[i];k++)
                   c2[k*date_value[i]+j]+=c1[j];
           }
           for(j=0;j<=len;j++){
               c1[j]=c2[j];
               c2[j]=0;
           }
       }
       for(i=len/2;i>=0;i--)
           if(c1[i]){
               printf("%d%d\n",len-i,i);
               break;
           }
   }
   return 0;
}


杭电ACM hdu 1171 Big Event in HDU 解题报告(母函数)

出处: Problem Description Nowadays, we all know that Computer College is the biggest department in HDU...
  • u012077163
  • u012077163
  • 2013年11月30日 16:36
  • 1961

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

题意很简单,n种物品,每个物品对应一个价值和数量。让你竟可能的分成相等的两份。 可以设背包容量为sum/2用多重背包解决。 也可以用母函数来解决,计算能组成的最接近sum/2的值。 母函数...
  • CillyB
  • CillyB
  • 2016年10月26日 21:13
  • 249

HDU 1171 Big Event in HDU(母函数||DP)

Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other...
  • jk13171217
  • jk13171217
  • 2014年07月30日 16:43
  • 618

HDU 1171 Big Event in HDU (母函数)

题意:有n样物品,每样物品价值是v,件数是m。尽量把这些物品分成两堆使得两边总价值最接近。输出分得的两堆各自的价值。 利用母函数法来解决,因为分成两堆,而两堆中较小的一堆最大为所有物品总价值量的一半,...
  • IAccepted
  • IAccepted
  • 2014年04月28日 16:42
  • 2906

杭电 HDU ACM 1171 Big Event in HDU

Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other...
  • lsgqjh
  • lsgqjh
  • 2015年04月25日 20:37
  • 469

HDU 1171 Big Event in HDU 【母函数】

Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other...
  • u013806814
  • u013806814
  • 2014年11月29日 22:17
  • 642

HDU 1171 Big Event in HDU(母函数)

好久没写博客了,再水一发。 写个母函数跑一下,然后取生成数最中间的那一个x. 最后比较一下x与sum-x的大小...
  • z690933166
  • z690933166
  • 2013年07月19日 20:04
  • 368

hdu 1171 Big Event in HDU (母函数)

点击打开链接 转换为母函数的思路是:把设备排列组合,把所有可能的组合都打出来,然后从总 价值的中间开始搜,只要搜到第一个就是了,再用total-i就是最靠近的两个价值了。。所以输出是total-...
  • yyf573462811
  • yyf573462811
  • 2012年07月28日 10:17
  • 440

hdu 1171 Big Event in HDU(母函数|多重背包)

http://acm.hdu.edu.cn/showproblem.php?pid=1171 题意:有n种物品,给出每种物品的价值和数目,要将这些物品尽可能的分成相等的两份A和B且A>=B ,输出A...
  • u013081425
  • u013081425
  • 2014年07月27日 20:11
  • 806

【HDU】1171 - Big Event in HDU(母函数)

点击打开题目 Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (J...
  • wyg1997
  • wyg1997
  • 2016年07月22日 09:06
  • 229
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【HDU】1171【母函数】【Big Event in HDU】
举报原因:
原因补充:

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