题目链接:http://poj.org/problem?id=1837

题目大意:

给你c(2<=c<=20)个挂钩,g(2<=g<=20)个砝码,求在将所有砝码(砝码重1~~25)挂到天平(天平长  -15~~15)上,并使得天平平衡的方法数

输入:

2 4 //C 钩子数 与 G钩码数

-2 3 //负数:左边的钩子距离天平中央的距离;正数:右边的钩子距离天平中央的距离c[k]

3 4 5 8 //G个重物的质量w[i]

思路:将g个挂钩挂上的极限值:15*25*20==7500

那么在有负数的情况下是-7500~~7500   以0为平衡点

那可以将平衡点往右移7500个单位,范围就是0~~15000这样就好处理多了

其实我觉得以后的题目中不仅仅天平问题可以这样处理,在有负数的以及要装入数组处理的题目中,我们都可以尝试着平移简化问题

这题目是要将所有的砝码都挂到天平上后的最多方法数,同时砝码自带质量,也就是说,这不仅仅有着“容量”的限制,还有着“件数”的限制,所以用二维费用背包

每个砝码只能用一次,果断01背包,并且在处理这一状态前,先判断前一状态是否存在    用>0表示存在,用0表示不存在,而这个题目又是求方法数,不需要再减去1

#include<iostream>
using namespace std;
int main()
{int w[25],s[25];        //s[] 天平的座标;w[]不同重量的砝码;int dp[25][15002]={0};     int i,j,k,m,g;cin>>m>>g;for(i=1;i<=m;i++)cin>>s[i];for(i=1;i<=g;i++)cin>>w[i];dp[0][7500]=1;    //7500为天枰达到平衡状态时的平衡度             //   放入前0个物品后,天枰达到平衡状态7500的方法有1个,就是不挂钩码 
for(i=1;i<=g;i++)for(j=1;j<=15000;j++)if(dp[i-1][j])for(k=1;k<=m;k++)dp[i][j+w[i]*s[k]]+=dp[i-1][j];cout<<dp[g][7500]<<endl;return 0;
}

POJ-1837 Balance相关推荐

  1. POJ 1837 Balance(01背包变型)

    题意: 有一个杠杆,上面有c个钩子,有g件物品,全部放上去,问有多少种方式使天平平衡. 思路: 1. dp[i][j]代表第 i 件物品放到杆子上面之后,平衡度为 j 的方法数 2. 如果不加处理,j ...

  2. poj 1837 Balance

    题意:有c个挂钩,g个砝码,要求用完所以砝码,且天平平衡的方法数 状态方程:f[i][j]表示用完前i个砝码平衡度为j时的方法数,f[i-1][j]表示用完前i-1个砝码,平衡度为j的方法数,此时加上 ...

  3. POJ 1837 Balance dp

    https://vjudge.net/problem/POJ-1837 题目大意:nnn个砝码,mmm个挂钩,给出mmm个挂钩的位置,范围在[−15,15][-15,15][−15,15],负数表示在 ...

  4. 【POJ - 1837】Balance(dp及其优化)

    题干: Gigel has a strange "balance" and he wants to poise it. Actually, the device is differ ...

  5. POJ 2142-The Balance(扩展欧几里德)

    题目地址:POJ 2142 题意:有两种类型的砝码质量分别为a和b,要求称出质量为d的物品,要求a的数量x和b的数量y的和x+y最小,若有多个x+y的值,取ax+by最小的. 思路:我们应该求ax+b ...

  6. POJ 1837 Blance (01背包)

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

  7. 1837:Balance

    //动态规划 #include <iostream> #include <cstring> using namespace std;int dp[21][15001];//状态 ...

  8. poj 1837 blance (01背包)

    题意 : 有一个特俗的天平 c 个指定的位置 g个给定重量的砝码 问用上所有砝码 使天平平衡的方案有几种 思路: dp[i][j+c[k]*g[i]]+=dp[i-1][j]; #include< ...

  9. poj 1837(blance)

    该题为一道简单的01背包,本题解用滚动队列(叫栈也可)稍微进行了些优化,由于该背包出现了负数,我们用10000作为表示平衡点 View Code 1 #include<iostream> ...

  10. DP分类题目 转载 《志当存高远》大神的 没有冒犯的意思 只是拿过来学习的

    A.各种背包,就根据背包九讲的内容来做吧! --不会背包的可以边看背包九讲边练习 =========================================================== ...

最新文章

  1. jfinal里使用ajax,Jfinal解决AJAX的跨域请求
  2. JVM面试问题系列:JVM 配置常用参数和常用 GC 调优策略
  3. spring 事务笔记(四)
  4. 11.深度学习练习:Keras tutorial - the Happy House(推荐)
  5. CSS3 :nth-child() ,nth-of-type(),nth-last-child() ,nth-last-of-type()
  6. 京东金融回应用户遭盗刷:系用户点击假冒链接 输短信验证码致密码泄露
  7. Sharepoint的web.config配置
  8. cuda stream
  9. 20200611每日一句
  10. 翻遍知乎1000多个高赞回答,我找到了这7本计算机圣经
  11. 15款国内外知名优秀PHP集成环境推荐、PHP绿色集成环境推荐
  12. java爬取百度图片
  13. 独立站卖家如何借势营销
  14. 高仿有赞微小店SplashView
  15. error: (-5:Bad argument) in function ‘seamlessClone‘ 和error: (-215:Assertion failed) 0 <= roi.x 0
  16. jetson-NX刷机
  17. 1157 Anniversary
  18. mysql LOCATE函数
  19. android指纹解锁_Android指纹锁
  20. 【python】pyc文件反编译为py文件

热门文章

  1. 腾讯推出高性能 RPC 开发框架
  2. 如何在Java代码中去掉烦人的“!=null”
  3. 一线大厂的分布式唯一ID生成方案是什么样的?
  4. 来普及一下Redis主从复制以及主从复制原理
  5. 初入职场的我怎么就成了个打杂的,我是这样破局的 No.146
  6. 345 所开设人工智能本科专业高校名单大全
  7. 深度学习需要掌握的 13 个概率分布(附代码)
  8. 何恺明团队新作:只用普通ViT,不做分层设计也能搞定目标检测
  9. AI十级「找茬」选手,非这个书生莫属,节后开源!
  10. 陶哲轩之后,有人在这个猜想的证明之路上又前进了一步