这题说的给了 一 个 图,每次 按照他给的顺序 跳格子 给了 每种 格子之间的 转换 代价 求最后 转换代价

dp[i][j] 表示 左脚在i 右脚 在j 的最小代价 然后用滚动数组 ,就可以不断说的转化,然后固定一个 另一个变换

dp[n][i]  dp[i][n]

#include <iostream>
#include <algorithm>
#include <string.h>
#include <cstdio>
using namespace std;
typedef long long ll;
const ll maxv=1e18;
ll dp[][][];
void inti(int now){
for(int i=; i<; ++i)
for(int j=; j<; ++j)
dp[now][i][j]=maxv;
}
ll cal(int a, int b)
{
if( a== || b== ) return ;
if( a == b ) return ;
int t1 = a+ ;
if( t1 > ) t1=;
if( t1 == b ) return ;
t1 = a-;
if( t1 < ) t1=;
if( t1 == b ) return ;
return ;
}
int main()
{
int n;
while(scanf("%d",&n)==&&n){
int now=;
int late=;
inti();
dp[][][n]=;
dp[][n][]=;
int per=n;
while(true){
scanf("%d",&n);
if(n==) break;
per=n;
now=-now;
late=-late;
inti(now);
for(int i=; i<; ++i)
for(int j=; j<; ++j){
if(i==j||i==n)continue;
dp[now][n][i] = min(dp[late][j][i]+cal(j,n),dp[now][n][i]);
}
for(int i=; i<; ++i)
for(int j=; j<; ++j){
if(i==j||i==n) continue;
dp[now][i][n]=min( dp[now][i][n] , dp[late][i][j]+cal(j,n) );
}
}
ll ans=maxv;
for(int i=;i< ; ++i)
ans=min(ans, min( dp[now][per][i],dp[now][i][per]));
printf("%lld\n",ans);
} return ;
}

uva1291的更多相关文章

随机推荐

  1. python2.0_s12_day10_Twsited异步网络框架

    Twsited异步网络框架 Twisted是一个事件驱动的网络框架,其中包含了诸多功能,例如:网络协议.线程.数据库管理.网络操作.电子邮件等. Package application Configu ...

  2. python文件和目录操作方法大全(含实例)【python】

    转自:http://www.jb51.net/article/48001.htm 一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 1.得到当前工作目录,即当前Py ...

  3. struts2漏洞原理

    一.struts2简介: 目前web框架中非常流行的都是mvc设计模式.经典例子例如:python的Django.Flask:java的ssm等.因为使用MVC设计模式,所以在框架内部处理用户数据流参 ...

  4. 【BZOJ2251】[2010Beijing Wc]外星联络 后缀数组

    [BZOJ2251][2010Beijing Wc]外星联络 Description 小 P 在看过电影<超时空接触>(Contact)之后被深深的打动,决心致力于寻找外星人的事业.于是, ...

  5. mysql日期处在某两个时间段之间的between比较

    where SYSDATE() between '2018-08-28 09:21:48' and '2018-08-28 09:25:48' sysdate()等于2018-08-28 09:23: ...

  6. oracle rank()和dense_rank(), row_number() 的区别

    转自:http://www.linuxidc.com/Linux/2015-04/116349.htm 假设现在有一张学生表student,学生表中有姓名.分数.课程编号,现在我需要按照课程对学生的成 ...

  7. oracle的cursor

    oracle的cursor 转自:http://www.cnblogs.com/shengtianlong/archive/2010/12/31/1922767.html 1,什么是游标? ①从表中检 ...

  8. javascript飞机大战-----005创建子弹对象2

    子弹销毁 /* 创建子弹:因为子弹不是只创建一个所以要用构造函数 注意一点:子弹发射的位置应该是英雄机的正中央的位置,所以需要传点东西进来 */ function Bullet(l,t){ this. ...

  9. nginx软件的编译安装步骤

    1.1 检查软件安装的系统环境 [root@web02 conf]# cat /etc/redhat-release CentOS release 6.8 (Final) [root@web02 co ...

  10. Pandas使用to_csv保存中文数据用Excel打开是乱码

    关于这个问题还是困扰了很久,我生成了一些样本数据,打算保存到csv文件,之后用pandas的命令: # data是DataFrame的格式 data.to_csv('./data/myfile.csv ...