专题三 Problem S

原创 2016年05月31日 20:59:51
一、题目编号:
          1019
二、简单题意:
       Computer College要分成Computer College和Software college两个大学,他们要把原有的所有设备一分为二。给出设备的数目和价值,尽量使其价格平分成两部分,如果不能平分,分成的前一部分不能低于第二部分。求最终第一部分的价格和第二部分的价值分别是多少。
三、解题思路形成过程
       将总和平分后,就可以转换为01背包问题了。在两重循环中,注意内层循环应该从sum/2开始,状态转移方程式为:dp[j]=max(dp[j],dp[j-val[i]]+val[i]);
四、感想
        背包问题,还是要注意细节问题,比如数组大小要控制好。
五、AC代码
#include <stdio.h>
#include <string.h>
#include <algorithm>
using namespace std;
int val[10000];
int dp[300000];
int main()
{
    int n,i,j,a,b,l,sum;
    while(~scanf("%d",&n),n>0)
    {
        memset(val,0,sizeof(val));
        memset(dp,0,sizeof(dp));
        l=0;
        sum=0;
        for(i=0;i<n;i++)
        {
            scanf("%d%d",&a,&b);
            while(b--)
            {
                val[l++]=a;
                sum+=a;
            }
        }
        for(i = 0;i<l;i++)
        {
            for(j = sum/2;j>=val[i];j--)
            {
                dp[j]=max(dp[j],dp[j-val[i]]+val[i]);
            }
        }
        printf("%d %d\n",sum-dp[sum/2],dp[sum/2]);
    }


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

相关文章推荐

kuangbin——线段树专题 C - A Simple Problem with Integers

C - A Simple Problem with Integers Time Limit:5000MS     Memory Limit:131072KB     64bit IO Fo...

UVa 101 The Blocks Problem 数据结构专题

101 - The Blocks Problem 67864 19.16% 14194 题目链接: http://uva.onli...

搜索专题(DFS)HDU 1016-Prime Ring Problem

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1016 思路分析: 首先看到数据范围不超过20,那就把40以内的素数打表存在数组里吧,然后确定搜索方...

SDAU 搜索专题 20 Prime Ring Problem

1:问题描述 Problem Description A ring is compose of n circles as shown in diagram. Put natural number ...

SG专题:HDU1944 S-Nim

Problem Description Arthur and his sister Caroll have been playing a game called Nim for some time n...

【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 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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