两次记忆化搜索,第一次找最小的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的更多相关文章

  1. POJ1717 Dominoes[背包DP]

    Dominoes Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6731   Accepted: 2234 Descript ...

  2. poj1717 Dominoes (背包)

    A domino is a flat, thumbsized tile, the face of which is divided into two squares, each left blank ...

  3. OJ题目分类

    POJ题目分类 | POJ题目分类 | HDU题目分类 | ZOJ题目分类 | SOJ题目分类 | HOJ题目分类 | FOJ题目分类 | 模拟题: POJ1006 POJ1008 POJ1013 P ...

随机推荐

  1. pycharm常用快捷键和自定义快捷键

     默认快捷键 编辑类: Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 类名完成Ctrl + Shift + Enter 语句完成Ctrl + P 参数 ...

  2. JAVA 中的堆和栈

    栈与堆都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆.     Java的堆是一个运行时数据区,类的对象从中分配空间.这些对象通过new.n ...

  3. ADB命令小结

    )adb devices //查看启动的所有设备 )adb kill-server //重启设备 )adb start-server //启动设备 )adb -s emulator-(通过 adb d ...

  4. 19.break和continue

    break;语句: 1.可以在switch语句中,结束分支语句: 2.break:语句可以出现在单循环当中,默认情况下结束距离他最近的一个循环. 3.break 后面跟一个循环的名字可以结束你指定的这 ...

  5. 3.16 使用Zookeeper对HDFS HA配置自动故障转移及测试

    一.说明 从上一节可看出,虽然搭建好了HA架构,但是只能手动进行active与standby的切换: 接下来看一下用zookeeper进行自动故障转移: # 在启动HA之后,两个NameNode都是s ...

  6. Excel2007格式分析和XML解析

    1.    excel2007是使用xml格式来存储的,把一个excel文件后缀改为.zip,打开之后就直接可以看到一个excel文件对应的xml格式的文件了. 这里面有几部分 对于docProps目 ...

  7. Appium测试环境搭建实践

    一.环境准备 1. JDK环境配置   a)下载并安装JDK http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138 ...

  8. 洛谷 - SP3871 GCDEX - GCD Extreme - 莫比乌斯反演

    易得 $\sum\limits_{g=1}^{n} g \sum\limits_{k=1}^{n} \mu(k) \lfloor\frac{n}{gk}\rfloor \lfloor\frac{n}{ ...

  9. tableView刷新指定的cell 或section和滚动到指定的位置

    转自:http://blog.csdn.net/tianyou_code/article/details/54426494 //一个section刷新 NSIndexSet *indexSet=[[N ...

  10. POJ3191【(-2)进制本质】

    题意: 实现10进制数转换成-2进制数 思路: 有点意思,先扯些题外话,一个我们经常做的二进制:利用二进制有好多优化,大多都是利用了二进制能够表示一个数,然后优化了空间或者时间. 所以问题很清楚啊,就 ...