博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
1837Balance
阅读量:4641 次
发布时间:2019-06-09

本文共 853 字,大约阅读时间需要 2 分钟。

看了题解的,有个高手跟我说这道题目要用到dp统计,把原点偏移,即把不能表示的部分移到能够表示的区域。这个想法可能是用在-7500那里

我的一开始的想法是dp[i][j]  其中i表示i码,j表示j钩,dp表示是否平衡,但是无论怎么想都觉得这道题目不是dp,而是搜索,所以最后做不出来

看了人家的题解,才发现,我的决策变量找错了

dp[i][j]  其中i表示i码,j表示天平此时的平衡度,dp表示数量,而且值得注意的是,平衡度有可能是-7500,所以要用到dp偏移

理解了人家的想法,我也自己打了一个代码,可是错误了

dp[i][j+w[i]*c[k]+7500]+=dp[i-1][j+7500];老是把w跟c给用混了,所以以后在命名时得多加注意了

我的代码,通过了

#include "iostream"#include "string.h"using namespace std;int dp[25][15000];int main(){  int m,n,i,c[30],w[30],j,k;  while(cin>>m>>n){    for(i=1;i<=m;i++)cin>>c[i];    for(i=1;i<=n;i++)cin>>w[i];    memset(dp,0,sizeof(dp));    dp[0][7500]=1;    for(i=1;i<=n;i++){      for(j=-7500;j<=7500;j++){        if(dp[i-1][j+7500]!=0){          for(k=1;k<=m;k++){            dp[i][j+w[i]*c[k]+7500]+=dp[i-1][j+7500];            //cout<
<<' '<
<

 

转载于:https://www.cnblogs.com/dowson/p/3299268.html

你可能感兴趣的文章
Qt5启动画面
查看>>
清明节
查看>>
谈谈一些有趣的CSS题目(七)-- 消失的边界线问题
查看>>
ubuntu如何安装svn客户端?
查看>>
arcgis for javascript (3.17)
查看>>
【MySQL】Win7下修改MySQL5.5默认编码格式
查看>>
AI之路,第二篇:python数学知识2
查看>>
windows10关闭更新,windowsUpdate禁用无效 windows无限重启 一分钟无限重启 win10无法连接到SENS服务...
查看>>
[LeetCode] Alien Dictionary
查看>>
[LintCode] 空格替换
查看>>
JSSDK微信支付封装的支付类方法,代码比较齐全,适合收藏
查看>>
Java线程及Jvm监控工具
查看>>
python基础学习1-列表推导式和字典推导式
查看>>
mfc Radio Buttons
查看>>
[JavaScript]父子窗口间参数传递
查看>>
86. Partition List
查看>>
[LintCode] 378 Convert Binary Search Tree to Doubly Linked List 解题报告
查看>>
JAVA-初步认识-常用对象API(集合框架-泛型-泛型限定-上限的体现)
查看>>
查找一个字段所处的数据库及表
查看>>
第一周学习进度+四则运算1.0版
查看>>