dp之二维背包poj1837(天平问题 推荐)

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

思路:(这是我木有想到的)将g个挂钩挂上的极限值:15*25*20==7500

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

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

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

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

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

#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int dp[25][16000],s[25],t[25];
int main()
{int n,m;while(scanf("%d %d",&n,&m)>0){for(int i=1;i<=n;i++){scanf("%d",&s[i]);}for(int i=1;i<=m;i++)scanf("%d",&t[i]);memset(dp,0,sizeof(dp));dp[0][7500]=1;int sum=0;for(int i=1;i<=m;i++)             //m个砝码 {for(int j=15000;j>=1;j--)    //01背包,每个砝码只能用一次 for(int k=1;k<=n;k++)if(j+s[k]*t[i]>=0&&j+s[k]*t[i]<=15000&&dp[i-1][j+s[k]*t[i]])   //判断前一状态是否存在........ {dp[i][j]+=dp[i-1][j+s[k]*t[i]];//printf("j==%d   dp==%d   %d\n",j,dp[i][j],j+s[k]*t[i]);}//sum++;}printf("%d\n",dp[m][7500]);}return 0;
}

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462254.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gridview SummaryItem 格式化数字

DisplayFomrat{0:#.##}转载于:https://www.cnblogs.com/gaoshoubuduo/archive/2012/02/01/2334533.html

js注释

介绍 作用 合作分享&#xff1a;方便他人阅读&#xff0c;便于分享 沉淀总结&#xff1a;容易忘记代码&#xff0c;自己总结沉淀 形式 1.// 双斜杠 2&#xff0e;/**/斜杠星号 常用标签 标签 描述 module 标明当前文件模块&#xff0c;在这个文件中的所有成员将被默认为属于…

谁获得了最高奖学金

谁获得了最高奖学金http://acm.nyist.net/JudgeOnline/problem.php?pid60 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;2描述某校的惯例是在每学期的期末考试之后发放奖学金。发放的奖学金共有五种&#xff0c;获取的条件各自不同&#xff…

vs2013编译boost1.55.0 32/64位

在使用vs2013编译boost-1.55.0之前&#xff0c;先要给boost做下修改&#xff1a; boost_1_55_0\boost\intrusive\detail\has_member_function_callable_with.hpp line:222 template<class U> static BOOST_PP_CAT(zeroarg_checker_, BOOST_INTRUSIVE_HAS_MEMBER_FUNCTION…

简评知乎的优点与不足

首先说知乎好在什么地方&#xff1f; 1、我认为知道好在知乎的真实性。 因为真实&#xff0c;大家在问问题和回答问题的时候就比较负责。这一点很关键。如果没有了这一点&#xff0c;那就成了类似百度知道的东西&#xff0c;也就没必要存在了。 2、页面简洁友好。 没有广告&…

ICE简单介绍及使用示例

1、ICE是什么&#xff1f; ICE是ZEROC的开源通信协议产品&#xff0c;它的全称是&#xff1a;The Internet Communications Engine&#xff0c;翻译为中文是互联网通信引擎&#xff0c;是一个面向对象的中间件&#xff0c;使我们能够以最小的代价构建分布式应用程序。ICE使我们…

AtCoder Grand Contest 017

AtCoder Grand Contest 017 A - Biscuits 有\(n\)个数&#xff0c;问有多少个集合的数的和模\(2\)余\(P\)。 随便\(dp\)一下就好了。 #include<iostream> #include<cstdio> using namespace std; #define ll long long inline int read() {int x0;bool tfalse;char…

PowerDesigner 把Comment写到name中 和把name写到Comment中 pd7以后版本可用

在使用PowerDesigner对数据库进行概念模型和物理模型设计时&#xff0c;一般在NAME或Comment中写中文&#xff0c;在Code中写英文。Name用来显 示&#xff0c;Code在代码中使用&#xff0c;但Comment中的文字会保存到数据库Table或Column的Comment中&#xff0c;当Name已经存在…

CentOS 6.2 安装教程

一、CentOS简介 CentOS是Linux的发行版之一&#xff0c;它安全、稳定、高效&#xff0c;是我最喜欢的Linux发行版之一。CentOS根据Red Hat Enterprise Linux开放源代码编译而成&#xff0c;与RedHat Linux并没有什么本质上的差别。但Red Hat Enterprise Linux是商业软件&#x…

python-day2

7.字符串操作 capitalize&#xff1a;首字母大写 upper&#xff1a;全大写 lower&#xff1a;全小写 swapcase&#xff1a;大小写翻转 center&#xff1a;居中&#xff0c;空白填充 8.列表的操作 增删改查 增&#xff1a;append\extend 删&#xff1a;pop默认删除最后一位&…

浅入ICE组件编程

转载网页&#xff1a;http://blog.csdn.net/liuxuezong/article/details/26745041 一、ICE介绍 ICE是ZeroC公司开发的一款高效的开源中间件平台&#xff0c;全称是Internet Communications Engine。 它的主要设计目标是&#xff1a; • 提供适用于异种环境的面向对象中间件平台…

好久没有写了,今天就谈谈微信吧!

微信&#xff0c;也算是13年内比较火的东西了&#xff0c;就功能性而言&#xff0c;它的确是一个颠覆性的产品&#xff0c;大家可以想想看&#xff0c;如果你把微信一直运行在手机后台&#xff0c;有人给你语音留言&#xff0c;收到后是一段提醒铃声&#xff0c;这个不是带打电…

去哪儿对垒携程 在线旅游静悄悄的革命

出处&#xff1a;21世纪经济报道 时间&#xff1a;2011-05-11 10:38【 字体&#xff1a; 大 中 小 】 【打印此页】 【关闭】 颠覆与被颠覆的游戏&#xff0c;正于在线旅游市场悄然演绎。 5月10日&#xff0c;携程收报48.3美元&#xff0c;市值71.42亿美元&#xff0c;在赴美上…

Mybatis一级缓存和二级缓存 Redis缓存

一级缓存 Mybatis的一级缓存存放在SqlSession的生命周期&#xff0c;在同一个SqlSession中查询时&#xff0c;Mybatis会把执行的方法和参数通过算法生成缓存的键值&#xff0c;将键值和查询结果存入一个Map对象中。如果同一个SqlSession中执行的方法和参数完全一致&#xff0c;…

关于数据库查询优化的思考

举一个例子&#xff0c;我现在有一些新闻信息&#xff0c;它包括这些字段&#xff1b;新闻ID&#xff0c;新闻Name&#xff0c;新闻ShortIntro&#xff0c;新闻Detail&#xff0c;新闻PublishTime。我现在要把它存放在数据库中&#xff0c;然后从数据库中将其取出来放在GridVie…

mysql添加远程登陆权限及mysql远程连接命令

mysql添加远程登陆权限及mysql远程连接命令 1、mysql使用本身环境下面mysql数据库中的user表来管理用户及权限 mysql> use mysql;Database changedmysql> select user,host from user;-----------------| user | host |-----------------| root | 127.0.0.1 || …

linux下编译jrtplib-3.9.1

网站&#xff1a;http://blog.csdn.net/caoshangpa/article/details/51416822 一、下载jrtplib、jthread、CMake jrtplib&#xff1a;http://research.edm.uhasselt.be/jori/jrtplib/jrtplib-3.9.1.zip jthread&#xff1a;http://research.edm.uhasselt.be/jori/jthread/jthre…

【链接】Solr的Filed中indexed与stored属性

Solr的Filed中indexed与stored属性转载于:https://www.cnblogs.com/xiaostudy/p/11105554.html

mysql从入门到精通之数据库基本概念理解

生活中的记账&#xff0c;帐&#xff1a;就是数据&#xff0c;或者简单理解为信息吧。记账&#xff1a;就是存储数据、信息生活中记账都是记在哪儿呢&#xff1f;比如&#xff1a;门上、墙上、日历上无论记在哪儿&#xff1f;特点&#xff1a;记录的都是信息&#xff0c;变化的…

Eclipse WTP 使用入门

什么是WTP&#xff1f;WTP (Web Tools Platform) 是一个开发J2EE Web应用程序的工具集。用了太长时间的MyEclipse难免想换换口味&#xff0c;引用一段官方的描述来介绍WTP:The Eclipse Web Tools Platform (WTP) project extends the Eclipse platform with tools for developi…