POJ-1837 Balance
题目链接: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相关推荐
- POJ 1837 Balance(01背包变型)
题意: 有一个杠杆,上面有c个钩子,有g件物品,全部放上去,问有多少种方式使天平平衡. 思路: 1. dp[i][j]代表第 i 件物品放到杆子上面之后,平衡度为 j 的方法数 2. 如果不加处理,j ...
- poj 1837 Balance
题意:有c个挂钩,g个砝码,要求用完所以砝码,且天平平衡的方法数 状态方程:f[i][j]表示用完前i个砝码平衡度为j时的方法数,f[i-1][j]表示用完前i-1个砝码,平衡度为j的方法数,此时加上 ...
- POJ 1837 Balance dp
https://vjudge.net/problem/POJ-1837 题目大意:nnn个砝码,mmm个挂钩,给出mmm个挂钩的位置,范围在[−15,15][-15,15][−15,15],负数表示在 ...
- 【POJ - 1837】Balance(dp及其优化)
题干: Gigel has a strange "balance" and he wants to poise it. Actually, the device is differ ...
- POJ 2142-The Balance(扩展欧几里德)
题目地址:POJ 2142 题意:有两种类型的砝码质量分别为a和b,要求称出质量为d的物品,要求a的数量x和b的数量y的和x+y最小,若有多个x+y的值,取ax+by最小的. 思路:我们应该求ax+b ...
- POJ 1837 Blance (01背包)
Gigel has a strange "balance" and he wants to poise it. Actually, the device is different ...
- 1837:Balance
//动态规划 #include <iostream> #include <cstring> using namespace std;int dp[21][15001];//状态 ...
- poj 1837 blance (01背包)
题意 : 有一个特俗的天平 c 个指定的位置 g个给定重量的砝码 问用上所有砝码 使天平平衡的方案有几种 思路: dp[i][j+c[k]*g[i]]+=dp[i-1][j]; #include< ...
- poj 1837(blance)
该题为一道简单的01背包,本题解用滚动队列(叫栈也可)稍微进行了些优化,由于该背包出现了负数,我们用10000作为表示平衡点 View Code 1 #include<iostream> ...
- DP分类题目 转载 《志当存高远》大神的 没有冒犯的意思 只是拿过来学习的
A.各种背包,就根据背包九讲的内容来做吧! --不会背包的可以边看背包九讲边练习 =========================================================== ...
最新文章
- jfinal里使用ajax,Jfinal解决AJAX的跨域请求
- JVM面试问题系列:JVM 配置常用参数和常用 GC 调优策略
- spring 事务笔记(四)
- 11.深度学习练习:Keras tutorial - the Happy House(推荐)
- CSS3 :nth-child() ,nth-of-type(),nth-last-child() ,nth-last-of-type()
- 京东金融回应用户遭盗刷:系用户点击假冒链接 输短信验证码致密码泄露
- Sharepoint的web.config配置
- cuda stream
- 20200611每日一句
- 翻遍知乎1000多个高赞回答,我找到了这7本计算机圣经
- 15款国内外知名优秀PHP集成环境推荐、PHP绿色集成环境推荐
- java爬取百度图片
- 独立站卖家如何借势营销
- 高仿有赞微小店SplashView
- error: (-5:Bad argument) in function ‘seamlessClone‘ 和error: (-215:Assertion failed) 0 <= roi.x 0
- jetson-NX刷机
- 1157 Anniversary
- mysql LOCATE函数
- android指纹解锁_Android指纹锁
- 【python】pyc文件反编译为py文件