链接

路径麻烦啊 很多细节 倒回去搜一遍

卡了一节数据库。。

 #include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stdlib.h>
using namespace std;
#define LL long long
int u,o,path[],flag;
LL sum[][],dp[][],f[][];
int m,n;
void dfs(int u,int v)
{
if(flag)
return ;
int i,j,tt=o;
if(v==)
{
o++;
path[o] = u;
for(i = o ; i > ; i--)
printf("%d ",path[i]);
printf("%d\n",path[]);
flag = ;
return ;
}
if(dp[v][u]==dp[v-][u]+f[v][u])
{
o = tt;
path[++o] = u;
dfs(u,v-);
}
for(i = u-; i >= ; i--)
{
if(dp[v][i]!=dp[v-][i]+f[v][i])
continue;
o = tt;
if(dp[v][u]==dp[v][i]+sum[v][u]-sum[v][i])
{
for(j = u ; j>= i ; j--)
path[++o] = j;
dfs(i,v-);
}
}
for(i = u+ ; i <= m ; i++)
{
if(dp[v][i]!=dp[v-][i]+f[v][i])
continue;
o = tt;
if(dp[v][u]==dp[v][i]+sum[v][i-]-sum[v][u-])
{
for(j = u; j <= i; j++)
path[++o] = j;
dfs(i,v-);
}
}
o = tt;
}
int main()
{
int i,j,g;
flag=;
scanf("%d%d",&n,&m);
for(i = ; i <= n ;i++)
{
for(j = ; j <=m ; j++)
{
scanf("%lld",&f[i][j]);
sum[i][j] = sum[i][j-]+f[i][j];
}
}
for(i = ;i <= n ;i++)
{
for(j = ; j <=m ; j++)
dp[i][j] = dp[i-][j]+f[i][j];
for(j = ; j <= m ; j++)
{
for(g = ; g < j ;g++)
dp[i][j] = min(dp[i][j],dp[i][g]+sum[i][j]-sum[i][g]);
for(g = j+ ; g <=m ; g++)
dp[i][j] = min(dp[i][j],dp[i][g]+sum[i][g-]-sum[i][j-]);
}
}
LL ans = dp[n][],u = ;
for(i = ; i <= m ; i++)
{
if(ans>=dp[n][i])
{
ans = dp[n][i];
if(dp[n][i]==dp[n-][i]+f[n][i])
u = i;
}
}
o++;
path[o] = u;
if(n==)
printf("%d\n",u);
else
dfs(u,n-);
return ;
}

URAL1029. Ministry(DP+路径)的更多相关文章

  1. DP+路径 URAL 1029 Ministry

    题目传送门 /* 题意:就是从上到下,找到最短路,输出路径 DP+路径:状态转移方程:dp[i][j] = min (dp[i-1][j], dp[i][j-1], dp[i][j+1]) + a[[ ...

  2. POJ1015 && UVA - 323 ~Jury Compromise(dp路径)

    In Frobnia, a far-away country, the verdicts in court trials are determined by a jury consisting of ...

  3. Codeforces Round #598 (Div. 3)E(dp路径转移)

    题:https://codeforces.com/contest/1256/problem/E 题意:给一些值,代表队员的能力值,每组要分3个或3个以上的人,然后有个评价值x=(队里最大值-最小值), ...

  4. poj2264 dp+路径

    //Accepted 208K 0MS //dp //最长公共子序列+路径 #include <cstdio> #include <cstring> #include < ...

  5. poj1141Brackets Sequence(dp+路径)

    链接 dp好想  根据它定义的 记忆化下就行 路径再dfs一遍 刚开始以为要判空格 所以加了判空格的代码 后来知道不用 .. #include <iostream> #include< ...

  6. [IOI1999]花店橱窗布置(DP路径记录)

    题目:[IOI1999]花店橱窗布置 问题编号:496 题目描述 某花店现有F束花,每一束花的品种都不一样,同时至少有同样数量的花瓶,被按顺序摆成一行,花瓶的位置是固定的,从左到右按1到V顺序编号,V ...

  7. P1052 过河 线性dp 路径压缩

    题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙可能到达的点看成数 ...

  8. 【CH5104】I-country 线性dp+路径输出

    pre:在网格中,凸多边形可以按行(row)分解成若干段连续的区间 [ l , r ] ,且左端点纵坐标的值(col)满足先减后增,右端点纵坐标先增后减. 阶段:根据这个小发现,可以将阶段设置成每一行 ...

  9. poj1417(带权并查集+背包DP+路径回溯)

    题目链接:http://poj.org/problem;jsessionid=8C1721AF1C7E94E125535692CDB6216C?id=1417 题意:有p1个天使,p2个恶魔,天使只说 ...

随机推荐

  1. iOS 的一点理解(一) 代理delegate

    做了一年的iOS,想记录自己对知识点的一点理解. 第一篇,想记录一下iOS中delegate(委托,也有人称作代理)的理解吧. 故名思议,delegate就是代理的含义, 一件事情自己不方便做,然后交 ...

  2. 01_Java解析XML

    [打印list.Map集合的工具方法] /** * 打印List集合对应的元素 */ public void printList(List<Object> list){ for(Objec ...

  3. 11_Servlet的一些细节知识点

    [Servlet的细节知识点1-----一个Servlet映射到多个URL] 同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servl ...

  4. 超强的ACM题目类型总结

    转:初期: 一.基本算法:       (1)枚举. (poj1753,poj2965)     (2)贪心(poj1328,poj2109,poj2586)     (3)递归和分治法.       ...

  5. linux 和 windows下的程序计时

    Windows 使用<windows.h>中的GetTickCount(),该函数获得从操作系统启动到现在所经过(elapsed)的毫秒数,它的返回值是DWORD. 转自:http://w ...

  6. struts2自定义拦截器与cookie整合实现用户免重复登入

    目的:测试开发时,为了减少用户登入这个繁琐的登入验证,就用struts2做了个简单的struts2拦截器,涉及到了与cookie整合,具体的看代码 结构(两部份)=struts2.xml+自定义拦截器 ...

  7. C# 多线程基础

    多线程 无论您是为具有单个处理器的计算机还是为具有多个处理器的计算机进行开发,您都希望应用程序为用户提供最好的响应性能,即使应用程序当前正在完成其 他工作.要使应用程序能够快速响应用户操作,同时在用户 ...

  8. PHP学习心得(一)——简介

    PHP(“PHP: Hypertext Preprocessor”,超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML中,尤其适合 web 开发. PHP 脚 ...

  9. php开学之环境搭建

    1. php版本选择 1.1 PHP非线程安全与线程安全版本的选择技巧 1.2 版本区别 PHP的大版本主要分三支:PHP4/PHP5/PHP6 其中,PHP4由于太古老.对QQ支持不力已基本被淘汰, ...

  10. controller.pp 各组件的安装顺序

    controller 属性:         admin_address => $controller_node_address,         public_address => $c ...