poj1717
两次记忆化搜索,第一次找最小的gap,第二次找最少的次数。
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int INF = 0x3f3f3f3f;
int n,x;
int a[];
int b[];
int dp[][];
int abs(int a)
{
return a > ? a : -a;
}
int dfs(int cur,int gap)
{
if(dp[cur][gap] != -)
return dp[cur][gap];
if(cur == n)
{
return dp[cur][gap] = abs(gap);
}
int x = dfs(cur + ,gap + a[cur] - b[cur]);
int y = dfs(cur + ,gap + b[cur] - a[cur]);
return dp[cur][gap] = min(x, y);
}
int dfs2(int cur,int gap)
{
if(dp[cur][gap] != -)
return dp[cur][gap];
if(cur == n)
{
if(abs(gap) == x)
return dp[cur][gap] = ;
return dp[cur][gap] = INF;
}
int p = dfs2(cur + ,gap + a[cur] - b[cur]);
int q = dfs2(cur + ,gap + b[cur] - a[cur]) + ;
return dp[cur][gap] = min(p, q);
}
int main()
{
cin >> n;
for(int i = ;i < n;i ++)
{
scanf("%d%d",&a[i],&b[i]);
}
memset(dp,-,sizeof(dp));
x = dfs(,);
memset(dp,-,sizeof(dp));
cout << dfs2(,) << endl;
return ;
}
poj1717的更多相关文章
- POJ1717 Dominoes[背包DP]
Dominoes Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6731 Accepted: 2234 Descript ...
- poj1717 Dominoes (背包)
A domino is a flat, thumbsized tile, the face of which is divided into two squares, each left blank ...
- OJ题目分类
POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...
随机推荐
- 通用双向链表的设计(参考Linux系统中的实现)
通常我们设计设计链表都是将数据域放在里面,这样每次需要使用链表的时候都需要实现一个链表,然后重新实现它的相关操作,这里参考Linux系统中的设计实现了一个通用的双向链表,只需要在你的结构里面有一个这个 ...
- CSS:CSS cursor 属性
ylbtech-CSS:CSS cursor 属性 1.返回顶部 1. 实例 一些不同的光标: span.crosshair {cursor:crosshair;} span.help {cursor ...
- 转:Ubuntu12.04编译VLC,在linux上运行
Ubuntu12.04编译vlc2.1.0 1.编译环境 VM8.0.1 # gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAP ...
- Google 马来西亚主页被黑
互联网并没有想象中安全,Google 马来西亚主页被黑 | TheVerge 消… 查阅全文 ›
- java 整除(/) 求余(%) 运算
1. java 整除(/) 求余(%) 运算 1.求余 System.out.println(11%2); //顾名思义就是11除2的余数-->1 System.out. ...
- html中调用本地exe应用程序
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- CCF 201604-2 俄罗斯方块 (模拟)
问题描述 俄罗斯方块是俄罗斯人阿列克谢·帕基特诺夫发明的一款休闲游戏. 游戏在一个15行10列的方格图上进行,方格图上的每一个格子可能已经放置了方块,或者没有放置方块.每一轮,都会有一个新的由4个小方 ...
- yzm10铺瓷砖 一只小蜜蜂 ycb与取款机
yzm10铺瓷砖 一天yzm10接到任务,要求用2×1大小的瓷砖,来铺2×4的地面,地面需要恰好被铺满.这对yzm10来说太容易了,于是他马上设计出了5种不同的铺法(旋转情况算不同种,如图示2.4). ...
- vue中引入公共方法并使用
test.js文件(公共js文件) function myFun() { console.log('this is my function') } export { myfun } // 2 expo ...
- DOM中元素节点、属性节点、文本节点的理解13.3
节点信息 每个节点都拥有包含着关于节点某些信息的属性.这些属性是:nodeName(节点名称) nodeValue(节点值) nodeType(节点类型) nodeType nodeType 属性可返 ...