HDU1171 DP

这题老师上课说用母函数做 想了一会 还是DP吧 开了个DP标记数组 求完各个组合的值就行了

力求代码简洁= = 向学长学习

#include <iostream>
#include<cstdio>
#include<cstring>
using namespace std;
bool dp[3000000];
int main()
{
    int value,n,num,sum,a;
    while(~scanf("%d",&n)&&(n>=0))
    {
        memset(dp,0,sizeof(dp));
        dp[0]=1;
        sum=0;
        for(int i=0; i<n; i++)
        {
            scanf("%d%d",&value,&num);
            sum+=value*num;
            dp[value]=1;
            for(int j=1; j<num; j++)
                for(int k=0; k<=sum; k++)
                    if(dp[k])
                        dp[k+value]=1;
        }
        for(a=sum/2; a>=0; a--)
            if(dp[a])
                break;
        printf("%d %d\n",sum-a,a);
    }
    return 0;
}
时间: 2025-01-20 14:44:32

HDU1171 DP的相关文章

算法:HDU 4681 String (dp, LCS | 多校8)

题意 给出3个字符串A,B,C,要你找一个字符串D, 要满足下面规定 a) D是A的子序列 b) D是B 的子序列 c) C是D的子串 求D的最大长度 要注意子序列和子串的区别,子序列是不连续的,字串是连 续的 思路 由题目可知,C一定是A和B的子序列,那么先假设C在A和B中只有一个子序列,看下 面例子: abcdefdeg acebdfgh cf 可以看到"cf"在A串的[3, 6]区间 内, 在B串的[2,6]区间(黄色背景) 因为所求的C是D的子串,所以在该黄色区间内的其他字母一

【Android】dip、dp、sp、pt和px的区别

转载自:http://www.ityoudao.com/Web/Android_657_2256.html 1.概述 过 去,程序员通常以像素为单位设计计算机用户界面.例如:图片大小为80×32像素.这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上 运行该程序,则用户界面会显得很小.在有些情况下,用户界面可能会小到难以看清内容.由此我们采用与分辨率无关的度量单位来开发程序就能够解决这个问题. Android应用开发支持不同的度量单位. 2.度量单位含义 dip: device

UVA 10405 Longest Common Subsequence:简单DP

省赛还有不到50天了,自己DP这块实在是弱,准备就拿着些天狂刷DP了. http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=1346 大意: 求两个字符串的最长公共子序列. 思路:水题,不过需要注意的就是字符串里可能会出现空格,需要用gets,真是坑. 更多精彩内容:http://www.bianceng.cnhttp://www.biancen

HDU 2372 El Dorado(DP)

大意: 给你一个长度为n的数列,求极差小于k的最长的上升数列的长度. 思路: DP,循环k,每次求一个最长上升子序列. 更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/ #include <stdio.h> #include <string.h> #define LL __int64 int n, m; int a[110]; LL dp[110][110]; void Solve() { w

uva 10688:The Poor Giant(区间dp)

题目链接: uva-10688 http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=514&page=show_problem&problem=1629 题意 有n个苹果,和一个数k,第i个苹果的重量是k+i(1<=i<=n). 已知其中只有一个苹果是甜的, 所有比它重量轻的都是苦的,比它重的都是酸的. 为了要找出甜的苹果,就要去一个一个地吃它,且吃了咬了苹果

UVa 1362 Exploring Pyramids:多叉树遍历&amp;amp;DP

1362 - Exploring Pyramids Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=469&page=show_problem&problem=4108 Archaeologists have discovered a new set of hidden caves in one of the Egy

UVa 11375 Matches:DP&amp;amp;高精度

11375 - Matches Time limit: 2.000 seconds http://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=2370 We can make digits with matches as shown below: Given N matches, find the number of different numbers representable us

UVa 11137 Ingenuous Cubrency (DP)

11137 - Ingenuous Cubrency Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2078 People in Cubeland use cubic coins. Not only the unit of currency is called acube but also

POJ 2385 Apple Catching (DP)

Description It is a little known fact that cows love apples. Farmer John has two apple trees (which are conveniently numbered 1 and 2) in his field, each full of apples. Bessie cannot reach the apples when they are on the tree, so she must wait for t