漫步校园

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)

Total Submission(s): 4459    Accepted Submission(s): 1401

Problem Description
LL最近沉迷于AC不能自拔,每天寝室、机房两点一线。由于长时间坐在电脑边,缺乏运动。他决定充分利用每次从寝室到机房的时间,在校园里散散步。整个HDU校园呈方形布局,可划分为n*n个小方格,代表各个区域。例如LL居住的18号宿舍位于校园的西北角,即方格(1,1)代表的地方,而机房所在的第三实验楼处于东南端的(n,n)。因有多条路线可以选择,LL希望每次的散步路线都不一样。另外,他考虑从A区域到B区域仅当存在一条从B到机房的路线比任何一条从A到机房的路线更近(否则可能永远都到不了机房了…)。现在他想知道的是,所有满足要求的路线一共有多少条。你能告诉他吗?
 
Input
每组测试数据的第一行为n(2=<n<=50),接下来的n行每行有n个数,代表经过每个区域所花的时间t(0<t<=50)(由于寝室与机房均在三楼,故起点与终点也得费时)。
 
Output
针对每组测试数据,输出总的路线数(小于2^63)。
 
Sample Input
3
1 2 3
1 2 3
1 2 3
3
1 1 1
1 1 1
1 1 1
 
Sample Output
1
6
 
Author
LL
 
Source
 

Problem : 1428 ( 漫步校园 )     Judge Status : Accepted

RunId : 21258881    Language : G++    Author : hnustwanghe

Code Render Status : Rendered By HDOJ G++ Code Render Version 0.01 Beta

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>

using namespace std;
const int N = 50 + 5;
const int INF = (1<<30);
long long Min[N][N],dp[N][N];
typedef struct node{
int x,y,val;
node(int x=0,int y=0,int val=0):x(x),y(y),val(val){}
}Node;
const int dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int mat[N][N];
int n,newx,newy;

long long DFS(int x,int y){
if(x == n-1 && y == n-1) return 1;
if(dp[x][y]>0) return dp[x][y];
for(int d=0;d<4;d++){
newx = x + dir[d][0];
newy = y + dir[d][1];
if(newx >= 0 && newx < n && newy >= 0 && newy < n && Min[x][y] > Min[newx][newy]){
dp[x][y] += DFS(newx,newy);
}
}
return dp[x][y];
}
void Init(int n){
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
Min[i][j] = INF;
memset(dp,0,sizeof(dp));
}

void BFS(){
queue <Node> Q;
Node t,s;
Min[n-1][n-1] = mat[n-1][n-1];
t.x = n-1,t.y = n-1,t.val = mat[n-1][n-1];
Q.push(t);
while(!Q.empty()){
t = Q.front();Q.pop();
for(int d=0;d<4;d++){
newx = t.x + dir[d][0];
newy = t.y + dir[d][1];
if(newx >=0 && newx < n && newy >= 0 && newy < n){
s.val = t.val + mat[newx][newy];
if(s.val < Min[newx][newy]){
s.x = newx , s.y = newy;
Min[newx][newy] = s.val;
Q.push(s);
}
}
}
}
}

int main(){
while(scanf("%d",&n)==1){
Init(n);
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
scanf("%d",&mat[i][j]);
}
BFS();
printf("%I64d\n",DFS(0,0));
}
}

#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>

using namespace
std;
const int
N = 50 + 5;
const int
INF = (1<<30);
long long
Min[N][N],dp[N][N];
typedef struct
node{
int
x,y,val;
node(int x=0,int y=0,int val=0):x(x),y(y),val(val){}
}
Node;
const int
dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
int
mat[N][N];
int
n,newx,newy; long long DFS(int x,int y){
if(
x == n-1 && y == n-1) return 1;
if(
dp[x][y]>0) return dp[x][y];
for(int
d=0;d<4;d++){
newx = x + dir[d][0];
newy = y + dir[d][1];
if(
newx >= 0 && newx < n && newy >= 0 && newy < n && Min[x][y] > Min[newx][newy]){
dp[x][y] += DFS(newx,newy);
}
}
return
dp[x][y];
}
void
Init(int n){
for(int
i=0;i<n;i++)
for(int
j=0;j<n;j++)
Min[i][j] = INF;
memset(dp,0,sizeof(dp));
} void
BFS(){
queue <Node> Q;
Node t,s;
Min[n-1][n-1] = mat[n-1][n-1];
t.x = n-1,t.y = n-1,t.val = mat[n-1][n-1];
Q.push(t);
while(!
Q.empty()){
t = Q.front();Q.pop();
for(int
d=0;d<4;d++){
newx = t.x + dir[d][0];
newy = t.y + dir[d][1];
if(
newx >=0 && newx < n && newy >= 0 && newy < n){
s.val = t.val + mat[newx][newy];
if(
s.val < Min[newx][newy]){
s.x = newx , s.y = newy;
Min[newx][newy] = s.val;
Q.push(s);
}
}
}
}
} int main(){
while(
scanf("%d",&n)==1){
Init(n);
for(int
i=0;i<n;i++)
for(int
j=0;j<n;j++){
scanf("%d",&mat[i][j]);
}

BFS();
printf("%I64d\n",DFS(0,0));
}
}

搜索专题: HDU1428漫步校园的更多相关文章

  1. hdu1428漫步校园( 最短路+BFS(优先队列)+记忆化搜索(DFS))

    Problem Description LL最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于长时间坐在电脑边,缺乏运动.他决定充分利用每次从寝室到机房的时间,在校园里散散步.整个HDU校园呈方形布 ...

  2. hdu1428漫步校园

    #include <queue> #include <iostream> #include <algorithm> #include <cstring> ...

  3. HDU 1428 漫步校园(记忆化搜索,BFS, DFS)

    漫步校园 http://acm.hdu.edu.cn/showproblem.php?pid=1428 Problem Description LL最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于 ...

  4. [HDU 1428]--漫步校园(记忆化搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1428 漫步校园 Time Limit: 2000/1000 MS (Java/Others)    M ...

  5. Hdu428 漫步校园 2017-01-18 17:43 88人阅读 评论(0) 收藏

    漫步校园 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submissi ...

  6. HDU 1428漫步校园

    漫步校园 Problem Description LL最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于长时间坐在电脑边,缺乏运动.他决定充分利用每次从寝室到机房的时间,在校园里散散步.整个HDU校 ...

  7. HDOJ 1428 漫步校园

    漫步校园 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  8. HDU(搜索专题) 1000 N皇后问题(深度优先搜索DFS)解题报告

    前几天一直在忙一些事情,所以一直没来得及开始这个搜索专题的训练,今天做了下这个专题的第一题,皇后问题在我没有开始接受Axie的算法低强度训练前,就早有耳闻了,但一直不知道是什么类型的题目,今天一看,原 ...

  9. NOIP2018提高组金牌训练营——搜索专题

    NOIP2018提高组金牌训练营——搜索专题 1416 两点 福克斯在玩一款手机解迷游戏,这个游戏叫做”两点”.基础级别的时候是在一个n×m单元上玩的.像这样: 每一个单元有包含一个有色点.我们将用不 ...

随机推荐

  1. 解决IDEA Initialization error 'https://start.spring.io'

    IDEA Initialization error  'https://start.spring.io'     弹出一个error窗口    就是不能连接https://start.spring.i ...

  2. php中文件断点上传怎么实现?

    1.使用PHP的创始人 Rasmus Lerdorf 写的APC扩展模块来实现(http://pecl.php.net/package/apc) APC实现方法: 安装APC,参照官方文档安装,可以使 ...

  3. Qt 静态库与共享库(动态库)共享配置的一个小办法

    对于用 QtCreator 编写静态库,动态库,如何能够以最小的改动, 方便的实现两种形式的库文件生成:可以这麽做: 1)使用想到建立静态库 2)在项目配置文件*.pro  中: TARGET = n ...

  4. HDU1575--Tr A(矩阵快速幂)

    Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...

  5. Mongodb分片副本集集群搭建

    一.环境准备 1.1.主机信息(机器配置要求见硬件及开发标准规范文档V1.0) 序号 主机名 IP 1 DB_01 10.202.105.52 2 DB_02 10.202.105.53 3 DB_0 ...

  6. sqli-labs(11)

    基于登录点的注入(小编这里傻逼了 可以直接用group_concat函数绕过显示问题我还在用limit绕过) 0X01这里我们的参数就不是在get的方法里面提交的了  我们遇到了全新的问题 那么该怎么 ...

  7. js,正则实现金钱格式化

    https://blog.csdn.net/qq_36279445/article/details/78889305 https://github.com/jawil/blog/issues/30

  8. 大数据笔记(二十六)——Scala语言的高级特性

    ===================== Scala语言的高级特性 ========================一.Scala的集合 1.可变集合mutable 不可变集合immutable / ...

  9. python之设计模式的装饰器9步学习

    在继承的基础上增加新功能,重载,重写区别 装饰器: 函数a说,我是装饰器啊,其他哪个函数顶着我,我就吃了谁,然后吐出来我的和你的返回结果 testng的UI自动化,@beforetest,@befor ...

  10. zabbix 监控安装部署

    今天尝试一下部署zabbix 官方文档包括多个版本,此处选择4.0版本 https://www.zabbix.com/documentation/4.0/manual 1.安装环境选择 zabbix4 ...