HDU 1428
漫步校园
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2183 Accepted Submission(s): 627
1 2 3
1 2 3
1 2 3
3
1 1 1
1 1 1
1 1 1
/* */
#include<stdio.h>
#include<iostream>
#include<cstdlib>
#include<queue>
using namespace std;
const int HH=(<<)-;
int f[][];
__int64 val[][];
int dis[][];
bool in_Queue[][];
int map[][]={{,},{,},{-,},{,-}};
int n;
struct node
{
int x;
int y;
};
void bfs()
{
int i,x1,y1;
node tmp,tmp2;
queue<node>q;
tmp.x=tmp.y=n;
q.push(tmp);
dis[n][n]=n;
// memset(in_Queue,false,sizeof(in_Queue));
// in_Queue[n][n]=true;
while(q.size()>)
{
tmp=q.front();
q.pop();
// in_Queue[tmp.x][tmp.y]=false;
for(i=;i<;i++)
{
x1=tmp.x+map[i][];
y1=tmp.y+map[i][];
if(x1>=&&x1<=n && y1>=&&y1<=n)
if(dis[x1][y1]==HH||dis[x1][y1]>dis[tmp.x][tmp.y]+f[x1][y1])
{
dis[x1][y1]=dis[tmp.x][tmp.y]+f[x1][y1];
// if(in_Queue[x1][y1]==false)
{
tmp2=tmp;
tmp.x=x1;
tmp.y=y1;
q.push(tmp);
tmp=tmp2;
in_Queue[x1][y1]=true;
}
}
}
}
}
void ceshi()
{
int i,j;
for(i=;i<=n;i++)
{
printf("\n");
for(j=;j<=n;j++)
printf("%d ",dis[i][j]);
}
}
__int64 dfs(int x,int y)
{
int i,x1,y1;
__int64 sum=;
if(x==n && y==n) return ;
if(val[x][y]>) return val[x][y];
for(i=;i<;i++)
{
x1=x+map[i][];
y1=y+map[i][];
if(x1>=&&x1<=n && y1>=&&y1<=n)
{
if(dis[x][y]>dis[x1][y1])
sum+=dfs(x1,y1);
}
}
val[x][y]=sum;
return val[x][y];
} int main()
{
int i,j;
__int64 k;
while(scanf("%d",&n)>)
{
for(i=;i<=n;i++)
for(j=;j<=n;j++)
{
scanf("%d",&f[i][j]);
dis[i][j]=HH;
}
bfs();
memset(val,,sizeof(val));
// ceshi();
k=;
k=dfs(,);
printf("%I64d\n",k);
}
return ;
}
HDU 1428的更多相关文章
- HDU 1428 漫步校园 (BFS+优先队列+记忆化搜索)
题目地址:HDU 1428 先用BFS+优先队列求出全部点到机房的最短距离.然后用记忆化搜索去搜. 代码例如以下: #include <iostream> #include <str ...
- HDU 1428 漫步校园(记忆化搜索,BFS, DFS)
漫步校园 http://acm.hdu.edu.cn/showproblem.php?pid=1428 Problem Description LL最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于 ...
- hdu 1428 漫步校园
http://acm.hdu.edu.cn/showproblem.php?pid=1428 dijstra+dp; #include <cstdio> #include <queu ...
- [HDU 1428]--漫步校园(记忆化搜索)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1428 漫步校园 Time Limit: 2000/1000 MS (Java/Others) M ...
- hdu 1428(很好的一道题,最短路+记忆化搜索)
漫步校园 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submis ...
- HDU 1428漫步校园
漫步校园 Problem Description LL最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于长时间坐在电脑边,缺乏运动.他决定充分利用每次从寝室到机房的时间,在校园里散散步.整个HDU校 ...
- hdu 1142(迪杰斯特拉+记忆化搜索)
A Walk Through the Forest Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Jav ...
- hdu 4052 线段树扫描线、奇特处理
Adding New Machine Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- 转载:hdu 题目分类 (侵删)
转载:from http://blog.csdn.net/qq_28236309/article/details/47818349 基础题:1000.1001.1004.1005.1008.1012. ...
随机推荐
- 三个分段的.tar.gz文件,合并并解压
1.合并使用spilt分割的文件 # cat sxrt5.0.dvd1.tar.gzaa sxrt5.0.dvd1.tar.gzab sxrt5.0.dvd1.tar.gzac >>sxr ...
- Debug Dart at External Terminal
launch.json { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions ...
- FunDA(12)- 示范:强类型数据源 - strong typed data sources
FunDA设计的主要目的是解决FRM(Functional Relation Mapping)如Slick这样的批次型操作工具库数据源行间游动操作的缺失问题.FRM产生的结果集就是一种静态集合,缺乏动 ...
- echarts4 主题切换
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...
- [ActionScript 3.0] UDP通信
package com.controls.socket { import flash.events.DatagramSocketDataEvent; import flash.events.Event ...
- 为什么有监听socket和连接socket,为什么产生两个socket
为什么有监听socket和连接socket,为什么产生两个socket 先看一半的socket建立连接的双方的过程: 客户端: socket()---->创建出 active_socket_fd ...
- day 56 linux的安装python3 ,虚拟环境,mysql ,redis
1.1下载python源码包 网址:https://www.python.org/downloads/release/python-366/ 下载地址:https://www.python.org/f ...
- 【bzoj5180】[Baltic2016]Cities 斯坦纳树
这题一看显然是一个裸的斯坦纳树 我们用$f[i][j]$表示经过的路径中包含了状态$i$所表示的点,且连接了$j$号点的最短路径. 显然,$f[i][j]=min\{f[i$^$k][j]+f[k][ ...
- C#数据库连接方法
一:C# 连接SQL数据库 Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myP ...
- 【原创】Team Foundation Server 域环境迁移
先说下此片博客的上下文:部门所在的业务被集团出售,因此我们所有的计算机和服务器都得重新命名,退出当前域加入新公司的域.对于PC和其他服务器,目前不存在太大问题.但是对于Team Foundation ...