正题

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P1282


题目大意

n个多米诺骨牌,上下值不相同,可以交换一个多米诺上下的值,求最少的交换次数使上下之和的差值最小。


解题思路

用fi,j+Nfi,j+Nf_{i,j+N}表示只计算前i个多米诺,上下之差为j需要的最小次数,然后类似背包的想法正常用差值转移就好了。


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define N 5000
using namespace std;
int n,n1,n2,f[1001][N*3],a[1001],ans,mins;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d%d",&n1,&n2);a[i]=n1-n2;//只保存差值}memset(f,127/3,sizeof(f));f[0][N]=0;//初始化for(int i=1;i<=n;i++){for(int j=-N;j<=N;j++){f[i][j+N]=min(f[i-1][j+N-a[i]],f[i-1][j+N+a[i]]+1);}}for(int i=0;i<=N;i++){mins=min(f[n][N+i],f[n][N-i]);//计算最小答案if(mins<=1000)break;}printf("%d",mins);
}

P1282-多米诺骨牌【dp,背包】相关推荐

  1. 【动态规划】洛谷 P1282 多米诺骨牌

    [动态规划]洛谷 P1282 多米诺骨牌 时间限制: 1 Sec  内存限制: 128 MB 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下 ...

  2. 洛谷P1282 多米诺骨牌 题解

    洛谷P1282 多米诺骨牌 题解 题目链接:P1282 多米诺骨牌 题意: 多米诺骨牌由上下 222 个方块组成,每个方块中有 1∼61\sim61∼6 个点.现有排成行的上方块中点数之和记为 S1S ...

  3. P1282 多米诺骨牌 (差值DP+背包)

    题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...

  4. 【01背包】洛谷P1282多米诺骨牌

    题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...

  5. P1282 多米诺骨牌

    题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...

  6. 洛谷p1282多米诺骨牌

    题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...

  7. C++ P1282 多米诺骨牌

    题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...

  8. 洛谷 [P1282] 多米诺骨牌

    这道题是一道背包问题,考虑一个背包, 显然如果我们直接设dp[i]表示前i个使差值最小所需的最少翻转次数,是具有后效性的. 所以我们将直接求最值,改为求某个值是否可行,这种求最值转变为求可行性的思想是 ...

  9. P1282 多米诺骨牌题解

    [题目链接] P1282 [解题思路] 这道题我本来是想用贪心,用sort从大到小排序后,减去两张骨牌的差直到最小,结果却发现自己WA了. 很显然我的贪心是错误的,于是我后来就用了老师教的 dpdpd ...

最新文章

  1. 分享一个MD5加密的工具类
  2. 参数修饰符 params、in
  3. 使用docker部署一个直接可用的puppet服务端
  4. react生命周期函数_如何优雅的消灭掉react生命周期函数
  5. Android 平板中 自己定义键盘(popuwindow) 居于屏幕左下方 仿微信的password输入界面...
  6. 循环变量到底应该使用int还是unsigned int?
  7. android:layout_gravity和android:gravity属性的区别(转)
  8. Android 分享两个你学习android 平台开发必须碰到的几个知识点的组件【天气预报、日期】View 组件...
  9. 微服务架构与API网关
  10. 产品经理面试必问问题与答题模板
  11. Scala(1) -- Scala下载安装及idea环境配置
  12. 联想台式计算机 不启动u盘,联想电脑没有u盘启动项怎么办_联想电脑找不到u盘启动如何解决...
  13. 项目合同与劳务合同的区别
  14. code405是什么意思_HTTP返回reponse code 405
  15. 基于单片机的无线防盗报警系统设计(#0449)
  16. requireJS,rjs,gulp简易实现
  17. unity上传头像_Unity用户自定义圆角头像
  18. Speedoffice(PPT)怎么自定义设置幻灯片大小
  19. spark学习02天-scala读取文件,词频统计
  20. 直播卖货系统,使用数据库查询缓存

热门文章

  1. 软件测试基础知识bbst,摘自James Bach对软件测试新手的建议
  2. 排列组合思维导图_排列组合——排列数专题
  3. 云南河道 kml文件_处理能力提升 4 倍 ,大疆智图 4 天完成 5 公里河道建模
  4. windows如何添加本机dns记录_运维必看!超清晰的 DNS 原理入门指南
  5. 算法题目中经典问题(易错点)
  6. leetcote34. 在排序数组中查找元素的第一个和最后一个位置
  7. leetcode738. 单调递增的数字
  8. [设计模式]合成复用原则
  9. Fliptile POJ - 3279 (翻转)(二进制+对第一行暴力遍历翻转的位置)
  10. 6-7 求链表的倒数第m个元素 (25 分)