极类似动归的广搜?反正各种算法傻傻分不清…写之前叹了一句,好久不写广搜了啊!呵呵真的写了好久,大约一个钟头?

f[i,j,0]表示到点(i,j)且最后一步为下降的最少步数,f[i,j,1]就是上升。莫名让我想到了NOIP2013的摆花,那时我也脑坏地写了个O(N^2)也是这样[1..n,1..n,0..1]的数组…

犯的错误就是由于判断更高之后要入队列,判断更低之后也要入队列,否则有可能前面的true被后面的false给搞掉…这就是为什么我过了三个数据,剩下的数据都只错了一两行的原因。(数据真弱=。=)

90行+广搜,有种hold不住的感觉。今天上课听了树链剖分我表示…那种题遇到了干脆就送掉吧…=y=能搞懂LCA就是万幸了。

program mr440;
const dx:array[..] of integer=(,,-,);
dy:array[..] of integer=(,-,,);
var map:array[..,..] of integer;
mark:array[..,..] of boolean;
m,n,i,j,l,r,tx,ty:longint;
f:array[..,..,..] of longint;
lx,ly:array[..] of integer;
flag:boolean; function min(a,b:longint):longint;
begin
if a>b then exit(b) else exit(a);
end; function min3(a,b,c:longint):longint;
begin
if (a<b) and (a<c) then exit(a);
if (b<c) and (b<a) then exit(b);
exit(c);
end; begin
assign(input,'mr440.in2');reset(input);
assign(output,'mr440.ou2');rewrite(output);
readln(m,n);
for i:= to m do
begin
for j:= to n do
read(map[i,j]);
readln;
end;
fillchar(mark,sizeof(mark),);
fillchar(f,sizeof(f),$7f);
l:=;r:=;lx[l]:=;ly[l]:=;mark[,]:=true;f[,,]:=;f[,,]:=;
while (l<=r) do
begin
for i:= to do
begin
tx:=lx[l]+dx[i];
ty:=ly[l]+dy[i];
if (tx<) or (tx>m+) or (ty<) or (ty>n+) then continue;
if map[tx,ty]>=map[lx[l],ly[l]] then {1 shangsheng}
begin
flag:=false;
if f[lx[l],ly[l],]<f[tx,ty,] then
begin
f[tx,ty,]:=f[lx[l],ly[l],];
flag:=true;
end;
if f[lx[l],ly[l],]+<f[tx,ty,] then
begin
f[tx,ty,]:=f[lx[l],ly[l],]+;
flag:=true;
end;
if (mark[tx,ty]=false) and (flag=true) then
begin
inc(r);
lx[r]:=tx;ly[r]:=ty;
mark[tx,ty]:=true;
end;
end;
if map[tx,ty]<=map[lx[l],ly[l]] then
begin
flag:=false;
if f[lx[l],ly[l],]<f[tx,ty,] then
begin
f[tx,ty,]:=f[lx[l],ly[l],];
flag:=true;
end;
if f[lx[l],ly[l],]+<f[tx,ty,] then
begin
f[tx,ty,]:=f[lx[l],ly[l],]+;
flag:=true;
end;
if (mark[tx,ty]=false) and (flag=true) then
begin
inc(r);
lx[r]:=tx;ly[r]:=ty;
mark[tx,ty]:=true;
end;
end;
end;
mark[lx[l],ly[l]]:=false;
inc(l);
end;
for i:= to m do
begin
write(min(f[i,,]+f[i,,],min(f[i,,],f[i,,])*+),' ');
for j:= to n do
write(min(f[i,j,]+f[i,j,],min(f[i,j,],f[i,j,])*+),' ');
writeln;
end;
close(input);close(output);
end.

崎岖的山区

[mr440] 崎岖的山区的更多相关文章

  1. OpenJudge 7624 山区建小学

    在openjudge似乎无法凭题号搜到题...? 总时间限制:  1000ms  内存限制:  65536kB 描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任 ...

  2. 记录sqoop同步失败问题解决过程,过程真的是很崎岖。(1月6日解决)

    记录sqoop同步失败问题解决过程,过程真的是很崎岖.事发原因:最近突然出现sqoop export to mysql时频繁出错.看了下日志是卡在某条数据过不去了,看异常.看sqoop生成的mr并未发 ...

  3. NOI题库7624 山区建小学(162:Post Office / IOI2000 POST OFFICE [input] )

    7624:山区建小学 Description 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为 ...

  4. 第七届河南省赛10403: D.山区修路(dp)

    10403: D.山区修路 Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 69  Solved: 23 [Submit][Status][Web Bo ...

  5. #DP# ----- OpenJudge山区建小学

    没有记性.到DP不得不写博了,三天后又忘的干干净净.DP是啥 :-) 一道久到不能再久的题了. OpenJudge  7624:山区建小学 总时间限制: 1000ms     内存限制: 65536k ...

  6. Openjudge — 7624 山区建小学

    问题描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两个相邻的村庄之间的距离为di(为正整数),其中,0 < i & ...

  7. 7624:山区建小学(划分dp)

    7624:山区建小学 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄 ...

  8. 山区建小学(区间DP)

    山区建小学 时间限制: 1 Sec  内存限制: 128 MB提交: 17  解决: 5[提交][状态][讨论版][命题人:quanxing] 题目描述 政府在某山区修建了一条道路,恰好穿越总共m个村 ...

  9. 【OpenJudge7624】【区间DP】山区建小学

    山区建小学 总时间限制: 1000ms 内存限制: 65536kB [描述] 政府在某山区修建了一条道路,恰好穿越总共m个村庄的每个村庄一次,没有回路或交叉,任意两个村庄只能通过这条路来往.已知任意两 ...

随机推荐

  1. spring @ExceptionHandler注解方式实现异常统一处理

    首先,在我们的工程中新建BaseController父类,内容如下: package com.ztesoft.zsmartcity.framework.exception; import java.i ...

  2. Bootstrap列表

    一.HTML的列表 在HTML文档中,列表结构主要有三种:有序列表.无序列表和定义列表.具体使用的标签说明如下: 1.无序列表 <ul> <li>…</li> &l ...

  3. c++ 对象内存分配和虚函数

    1. c++类对象(不含虚函数)在内存中的分布 c++类中有四种成员:静态数据.非静态数据.静态函数.非静态函数. 1. 非静态数据成员放在每个对象内部,作为对象专有的数据成员 2. 静态数据成员被抽 ...

  4. linux 相关学习记录

    (一)概念① 物理CPU实际Server中插槽上的CPU个数物理cpu数量,可以数不重复的 physical id 有几个② 逻辑CPU /proc/cpuinfo 用来存储cpu硬件信息的信息内容分 ...

  5. 一个最简html5文档来说明html5的新特性和写法

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8&quo ...

  6. [Hadoop 周边] 浅谈大数据(hadoop)和移动开发(Android、IOS)开发前景【转】

    原文链接:http://www.d1net.com/bigdata/news/345893.html 先简单的做个自我介绍,我是云6期的,黑马相比其它培训机构的好偶就不在这里说,想比大家都比我清楚: ...

  7. [saiku] olap数据源管理

    一.应用场景 系统初始化的时候 如果没有创建olap数据源需要先创建olap数据源 否则直接获取所有的数据源存放在全局变量datasources里面以便于后续步骤中获取plap-connections ...

  8. Compound Interest Calculator3.0

    Compound Interest Calculator3.0 1.利率这么低,复利计算收益都这么厉害了,如果拿100万元去买年报酬率10%的股票,若一切顺利,过多长时间,100万元就变成200万元呢 ...

  9. IFE 百度前端技术学院 2016年春季班作业 第一阶段任务(1-4)的总结

    具体任务详细介绍可参考http://ife.baidu.com/task/all 具体代码参考:https://github.com/sunshineqt/webxt/tree/master/stag ...

  10. uva----(100)The 3n + 1 problem

     The 3n + 1 problem  Background Problems in Computer Science are often classified as belonging to a ...