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 ...
随机推荐
- AOP原理
AOP(面向切面编程):扩展功能时不修改源代码,采用横向抽取机制 纵向抽取机制: 横向抽取机制: 第一种情况: 第二种情况:
- AutoIt:如何处理应用程序端口被占用的情况
为公司的部署工程师书写了一个autoIt应用程序,现在遇到下面的一种情况: 产品分服务器端和客户端,启动的时候,会启用1785端口,然后彼此通信: 现在我的autoIt应用程序需要做的事情是: 如果1 ...
- A - Vasya and Socks
A - Vasya and Socks Time Limit:1000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64 ...
- 1.4-1.5 HBase部署及基本使用
一.部署 1.准备 ##先用Apache hadoop ##之前的cdh 服务器先全部停掉 ##解压HBASE [root@hadoop-senior hbase]# tar zxf hbase-0. ...
- TypeScript完全解读(26课时)_13.TypeScript完全解读-高级类型(2)
13.TypeScript完全解读-高级类型(2) 高级类型中文网的地址:https://typescript.bootcss.com/advanced-types.html 创建文件并在index. ...
- Validtion
今天在使用Validation框架实现验证时,出现以上的错误.查询资料后发现“validation-config.dtd”这个文件没有导入自己的工程,才会出现这样的错误. 将从文件导入后果然解决了问题 ...
- PHP实用小程序(七)
<? //用COOKIE保存投票人的投票记录 if($vote && !$already_voted) SetCookie("already_voted",& ...
- Swift3.0 轮播图
使用三个UIButton实现无限轮播:https://github.com/LXfeiYu/LXCarouselImages.git 喜欢的朋友给个星!!! 功能: 1.可以选择开启和关闭定时器 2. ...
- bzoj 3158: 千钧一发【最小割】
这个条件非常妙啊,奇数和奇数一定满足1,因为\( (2a+1)^2+(2b+1)^2=4a^2+4a+4b^2+4b+2=2(2(a^2+a+b^2+b)+1) \)里面这个一定不是平方数因为除二后是 ...
- mysql引擎问题研究
mysql引擎问题研究 数据库引擎 缺省情况下,MYSQL支持三个引擎:ISAM,MYISAM和HEAP.还存在MYSQL+API的引擎例如InnoDB. 数据库引擎特点 ISAM:执行读取操作速度很 ...