Luogu P1282 多米诺骨牌 DP。。背包?
背包。。。差不多。。QWQ
设f[i]为达到差值为i的状态需要多少次,那就很显然了; 注意区分正负不同的代价的循环方向
技巧:如果不想改负数的话,那可以移动一下数组下标,用一个新的指针指向原来的数组
#include<cstdio>
#include<iostream>
#include<cstring>
#define R register int
const int lim=;
using namespace std;
inline int g() {
R ret=,fix=; register char ch; while(!isdigit(ch=getchar())) fix=ch=='-'?-:fix;
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret*fix;
}
int n,sum;
int s[],d[],*f=d+lim;
inline int abs(int x) {return x>?x:-x;}
signed main() {
n=g(); for(R i=,a,b;i<=n;++i) a=g(),b=g(),s[i]=a-b,sum+=s[i];
memset(d,0x3f,sizeof(d)); f[sum]=;
for(R i=;i<=n;++i)
if(s[i]<) for(R j=lim;j>=-lim;--j) f[j]=min(f[j],f[j+*s[i]]+);
else if(s[i]>) for(R j=-lim;j<=lim;++j) f[j]=min(f[j],f[j+*s[i]]+);
for(R i=;i<=abs(sum);++i) if(min(f[i],f[-i])!=0x3f3f3f3f) {printf("%d\n",min(f[i],f[-i])); break;}
}
2019.04.29
Luogu P1282 多米诺骨牌 DP。。背包?的更多相关文章
- 洛谷P1282 多米诺骨牌 (DP)
洛谷P1282 多米诺骨牌 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中 ...
- 洛谷 P1282 多米诺骨牌("01"背包)
传送门 https://www.cnblogs.com/violet-acmer/p/9852294.html 参考资料: [1]:https://blog.csdn.net/Darost/artic ...
- P1282 多米诺骨牌 dp
思路:dp[i][j] 的j是上半段的和的值 这里表示的是达到上半段值是j的最小次数 答案在最小的可达到的j #include<bits/stdc++.h> using namespa ...
- P1282 多米诺骨牌【dp】
P1282 多米诺骨牌 提交 20.02k 通过 6.30k 时间限制 1.00s 内存限制 125.00MB 题目提供者洛谷 难度提高+/省选- 历史分数100 提交记录 查看题解 标签 查看算 ...
- P1282 多米诺骨牌
P1282 多米诺骨牌 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S ...
- 洛谷P1282 多米诺骨牌
P1282 多米诺骨牌 题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S ...
- poj 1717==洛谷P1282 多米诺骨牌
Dominoes Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6571 Accepted: 2178 Descript ...
- P1282 多米诺骨牌 (差值DP+背包)
题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...
- P1282 多米诺骨牌 (背包变形问题)
题目描述 多米诺骨牌有上下2个方块组成,每个方块中有1~6个点.现有排成行的 上方块中点数之和记为S1,下方块中点数之和记为S2,它们的差为|S1-S2|.例如在图8-1中,S1=6+1+1+1=9, ...
随机推荐
- ubuntu 64 14.04 共享文件夹问题
转自http://blog.csdn.net/gongyuan073/article/details/46604233 原文链接: http://blog.csdn.NET/chinley/artic ...
- 通明讲JDBC(一)–认识JDBC
本章记录了jdbc的简单使用方式! 0,jdbc的作用 1,jdbc入门准备工作 2,jdbc注册驱动 3,使用jdbc对数据库CRUD 0,jdbc的作用 与数据库建立连接.发送操作数据库的语句并处 ...
- App测试从入门到精通之UI测试
UI(user interface用户界面)的简称.UI测试也是APP测试中需要考虑的一个层面.用户至上,这个太重要了.一个好的App在界面的UI层设计上应该要满足简洁.美观.大气(这个是自己感觉的哈 ...
- HackTwo
使用延迟加载以及避免代码重复 一.概要: <include />标签是整理布局的有效工具,提供了合理组织XML布局文件的有效方法. ViewStub是实现延迟加载视图的优 ...
- switch case 判断是否为按钮、设置属性 Load Foreach 绑定事件
private void button9_Click(object sender, EventArgs e) { foreach (Control CT in this.Controls) {//判断 ...
- 自定义Cell的流程
1..h文件 // // 文 件 名:CHBackupGateWayCell.h // // 版权所有:Copyright © 2018 lelight. All rights reserved. / ...
- 在一个java类里,private int a; 什么时候要使用integer
private Integer index; if(index == null) index = 0; else this.index = index; Integer有一个明显的好处,就是它能比in ...
- linux系统root用户登录提示“鉴定故障”的解决办法
同事第一次创建虚拟机,遇到此问题,此前我未曾遇到,搜索到的解决办法记录在此,以防之后忘记. 一.重启系统解决(搜索到的该解决办法较多):https://www.cnblogs.com/lippor/p ...
- php 中 include 与 require 的区别
以下内容转自:https://blog.csdn.net/hsd2012/article/details/51089785 网上太多关于php中include与require区别.其实说的都是经不起验 ...
- centos6 x64安装elasticsearch5.5.2启动报错
ERROR: [3] bootstrap checks failed[1]: max file descriptors [4096] for elasticsearch process is too ...