POJ 1837 Balance(01背包)

原创 2015年08月26日 16:09:20

Description
有一个天平,两个臂上有钩子,臂长15,给出所有钩子的位置,给出每个钩码的重量(各不相同),求必须使用所有钩码的前提下,有多少种平衡方法
Input
第一行为两个整数n和m分别表示钩子个数和钩码个数(2<=C,G<=20),第二行为钩子位置,第三行为钩码质量
Output
输出平衡方法种数
Sample Input
2 4
-2 3
3 4 5 8
Sample Output
2
Solution
a[i]表示钩子位置,b[i]表示钩子质量,dp[i][j]表示用前i个砝码到达力矩j的方法数
dp[i ][j+a[k]*b[i]]+=dp[i-1][j];
Code

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
#define maxn 21
#define maxv 15000
typedef long long ll;
ll n,m;
ll a[maxn],b[maxn];
ll dp[maxn][maxv];
int main()
{
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        memset(dp,0,sizeof(dp));
        dp[0][maxv/2]=1;//不挂钩码中心位置平衡 
        int i,j,k;
        for(i=1;i<=n;i++)
            scanf("%d",&a[i]);
        for(i=1;i<=m;i++)
            scanf("%d",&b[i]);
        for(i=1;i<=m;i++)//m个钩码 
            for(j=1;j<=maxv;j++)//一个钩码只能用一次 
                if(dp[i-1][j])//判断前一状态是否存在 
                    for(k=1;k<=n;k++)//将这个钩码分别钩在n个钩子上 
                        dp[i][j+a[k]*b[i]]+=dp[i-1][j];
        printf("%d\n",dp[m][maxv/2]);//令中心位置平衡的种类数 
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

POJ 1837 Balance(01背包)

POJ 1837 Balance(01背包) http://poj.org/problem?id=1837 题意:        有一个天平,天平左右两边各有若干个钩子,总共有C个钩子(每个钩子...

poj 1837 Balance -dp-01背包

Balance Gigel has a strange "balance" and he wants to poise it. Actually, the device is different fr...
  • ly59782
  • ly59782
  • 2016年10月22日 16:44
  • 131

POJ 1837 Balance(01背包 动态规划)

Balance Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 12613   Accepted: 7903 ...

POJ Balance 1837(01背包)

Balance Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 13585   Accep...

解题报告:POJ 1837 Balance 01背包变形

Description Gigel has a strange "balance" and he wants to poise it. Actually, the device is diffe...

POJ 1837 Balance 类似01背包

题目描述:DescriptionGigel has a strange “balance” and he wants to poise it. Actually, the device is diff...

poj 1837 Balance(01背包 天平平衡)

题目大意: 有一个天平,天平左右两边各有若干个钩子,总共有C个钩子,有G个钩码,求将钩码全部挂到钩子上使天平平衡的方法的总数。 其中可以把天枰看做一个以x轴0点作为平衡点的横轴 输入...

poj1837-Balance(01背包)

poj1837-Balance
  • Nicke_
  • Nicke_
  • 2017年04月02日 12:01
  • 127

【POJ 1837】Balance(01背包)

DescriptionGigel has a strange “balance” and he wants to poise it. Actually, the device is different...

POJ-1837-Balance -01背包

提示:动态规划,01背包 初看此题第一个冲动就是穷举。。。。不过再细想肯定行不通= =O(20^20)等着超时吧。。。 我也是看了前辈的意见才联想到01背包,用动态规划来解   题目大意: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:POJ 1837 Balance(01背包)
举报原因:
原因补充:

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