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 ...
随机推荐
- AutoIt:如何处理应用程序端口被占用的情况
为公司的部署工程师书写了一个autoIt应用程序,现在遇到下面的一种情况: 产品分服务器端和客户端,启动的时候,会启用1785端口,然后彼此通信: 现在我的autoIt应用程序需要做的事情是: 如果1 ...
- 回味经典——uboot1.1.6 之 第一阶段
转自:http://blog.csdn.net/lizuobin2/article/details/52054293 最近打算移植一个比较新的 uboot 到开发板,回想起来上一次移植 uboot1. ...
- PHP 时间戳
<?php php 获取今日.昨日.上周.本月的起始时间戳和结束时间戳的方法,主要使用到了 php 的时间函数 mktime.下面首先还是直奔主题以示例说明如何使用 mktime 获取今日.昨日 ...
- Android开发—— 传递数据
一:使用静态变量传递数据 (1)静态变量传递数据,在目标Activity中声明静态变量,然后使用setText()方法将静态变量的值导出即可: (2)静态变量传递数据,在主Activity中对目标Ac ...
- HDOJ-2045
不容易系列之(3)—— LELE的RPG难题 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/O ...
- 1.25-1.26 Coordinator数据集和oozie bundle
一.Coordinator数据集 二.oozie bundle
- python之继承、抽象类、派生、多态、组合、封装
1.继承概念的实现方式主要有2类:实现继承.接口继承. Ø 实现继承是指使用基类的属性和方法而无需额外编码的能力: Ø 接口继承是指仅使用属性和方法的名称.子类必须提供 ...
- 技术胖Flutter第四季-23静态资源和项目图片的处理
技术胖Flutter第四季-23静态资源和项目图片的处理 视频地址:https://www.bilibili.com/video/av35800108/?p=24 项目中引用图片静态资源文件 这里就是 ...
- python 网络编程(网络基础之网络协议篇)
前言 C/S B/S 架构 client<----->server browser<--->server 学习socket编程就是要编写一个客户端软件和服务端软件,然后实现服 ...
- SCUT - 114 - 作业之数学篇 - 杜教筛
https://scut.online/p/114 \(A(n)=\sum\limits_{i=1}^{n} \frac{lcm(i,n)}{gcd(i,n)}\) \(=\sum\limits_{i ...