hdu1428(记忆化搜索)
题意:“他考虑从A区域到B区域仅当存在一条从B到机房的路线比任何一条从A到机房的路线更近(否则可能永远都到不了机房了…”这句话一定要理解清楚。就是说,对于当前位置,如果下一个状态与终点的最短距离大于或者等于当前位置到终点的最短距离,那么这个下一个状态是不可取的!到此,就能明白,此题就是求出所有点与终点的最短距离,然后再从起点进行记忆化搜索。
这道题目值得注意,它有用广搜的dj,很有用的一个东东......
用广搜实现的dj,如果是用一般的dj,会发现构图很麻烦,因为它不是路径带权值,而是自身带权值。写起来只要注意,在点出队列的生活将其标记为0,在要压入队列的时候,判断其标记是否为0,为0表示队列中木有这个点,则压入........
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std;
typedef __int64 ss;
#define maxx 100000000
struct node
{
ss x,y;
};
ss n,t[4][2]={1,0,-1,0,0,1,0,-1};
ss dis[100][100],vist[100][100],dp[100][100],a[100][100];
void dj()
{
queue<node>q;
for(ss i=0;i<=n;i++)
for(ss j=0;j<=n;j++)
dis[i][j]=maxx;
dis[n][n]=a[n][n];
memset(vist,0,sizeof(vist));
vist[n][n]=1;
node tmp;
tmp.x=n;
tmp.y=n;
q.push(tmp);
while(!q.empty())
{
node tmp1=q.front();
q.pop();
vist[tmp1.x][tmp1.y]=0;
for(ss i=0;i<4;i++)
{
ss xx=tmp1.x+t[i][0];
ss yy=tmp1.y+t[i][1];
if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&dis[xx][yy]>dis[tmp1.x][tmp1.y]+a[xx][yy])
{
dis[xx][yy]=dis[tmp1.x][tmp1.y]+a[xx][yy];
if(!vist[xx][yy])
{
node tmp2;
tmp2.x=xx;
tmp2.y=yy;
q.push(tmp2);
vist[xx][yy]=1;
}
}
}
}
}
ss dfs(ss x,ss y)
{
ss ans=0;
if(!dp[x][y])
{
for(ss i=0;i<4;i++)
{
ss xx=x+t[i][0];
ss yy=y+t[i][1];
if(xx>=1&&xx<=n&&yy>=1&&yy<=n&&dis[xx][yy]<dis[x][y])
{
ans+=dfs(xx,yy);
}
}
dp[x][y]=ans;
}
return dp[x][y];
}
int main()
{
while(scanf("%I64d",&n)>0)
{
for(ss i=1;i<=n;i++)
for(ss j=1;j<=n;j++)
scanf("%I64d",&a[i][j]);
dj();
//for(int i=1;i<=n;i++)
//for(int j=1;j<=n;j++)
//printf("%I64d\t",dis[i][j]);
memset(dp,0,sizeof(dp));
dp[n][n]=1;
ss sum=dfs(1,1);
printf("%I64d\n",sum);
}
return 0;
}
hdu1428(记忆化搜索)的更多相关文章
- hdu1428 记忆化搜索(BFS预处理最短路径和+DP+DFS)
题意:有一块 n * n 大小的方形区域,要从左上角 (1,1)走到右下角(n,n),每个格子都有通过所需的时间,并且每次所走的下一格到终点的最短时间必须比当前格子走到重点的最短时间短,问一共有多少种 ...
- hdu1428漫步校园( 最短路+BFS(优先队列)+记忆化搜索(DFS))
Problem Description LL最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于长时间坐在电脑边,缺乏运动.他决定充分利用每次从寝室到机房的时间,在校园里散散步.整个HDU校园呈方形布 ...
- HDU-1428(记忆化搜索)
Problem Description LL 最近沉迷于AC不能自拔,每天寝室.机房两点一线.由于长时间坐在电脑边,缺乏运动.他决定充分利用每次从寝室到机房的时间,在校园里散散步.整个HDU 校园呈方 ...
- hdu1428 spfa+记忆化搜索
题意: 题意坑爹,很容易误认成是做短路的条数,题意是给你一个图,让你从起点走到终点,问你有多少种走法,但有一个限制,假如你想从a走到b,必须满足终点到b的最短距离小于终点到a的最短距离. 思 ...
- [ACM_动态规划] 数字三角形(数塔)_递推_记忆化搜索
1.直接用递归函数计算状态转移方程,效率十分低下,可以考虑用递推方法,其实就是“正着推导,逆着计算” #include<iostream> #include<algorithm> ...
- 【BZOJ-3895】取石子 记忆化搜索 + 博弈
3895: 取石子 Time Limit: 1 Sec Memory Limit: 512 MBSubmit: 263 Solved: 127[Submit][Status][Discuss] D ...
- hdu3555 Bomb (记忆化搜索 数位DP)
http://acm.hdu.edu.cn/showproblem.php?pid=3555 Bomb Time Limit: 2000/1000 MS (Java/Others) Memory ...
- zoj 3644(dp + 记忆化搜索)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4834 思路:dp[i][j]表示当前节点在i,分数为j的路径条数,从 ...
- loj 1044(dp+记忆化搜索)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26764 思路:dp[pos]表示0-pos这段字符串最少分割的回文 ...
随机推荐
- nmap常用扫描命令
NMap,也就是Network Mapper,是Linux下的网络扫描和嗅探工具包. nmap是在网络安全渗透测试中经常会用到的强大的扫描器.功能之强大,不言而喻.下面介绍一下它的几种扫描命令.具体的 ...
- Orchard运用 - 整合Disqus评论插件
评论对于博客系统那是必须具备的一个功能,Orchard本身也默认实现了评论模块,你可以集成到其他内容,比如博客随笔,不过觉得有点寒碜,样式有点呆板.幸运的是,你可以简单集成第三方评论插件,比如Disq ...
- Servlet学习笔记(一):生命周期
一.Servlet 生命周期: Servlet 生命周期可被定义为从创建直到毁灭的整个过程.以下是 Servlet 遵循的过程:初始化——响应请求——终止——回收 Servlet 通过调用 init ...
- 项目笔记:list页面展示与交互设计
1.前台页面: 因为要展示正版和非正版,所以传个Type值过去: //正版序列号库列表 var type = $("input[name='serialNumber']:checked&qu ...
- MapReduce开发技巧
数据类型的选择 自定义数据类型 参考:Hadoop提交作业自定义排序和分组 MapWritable/SortedMapWritable Hadoop中可传输的Map集合,和Java中的Map用法差不多 ...
- Maven项目结合POI实现导入导入导入导入导入Excl表格Demo-亲测可用
第一步:写入maven依赖(3.6是比较稳定的版本,可用于生产环境) <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --& ...
- Discuz常见小问题-如何快速清除帖子
看别人发的垃圾帖,然后鼠标移到用户名上面,在弹出菜单中点击禁止用户 设置禁止访问-全选所有,删除 然后短期内无法看到效果,帖子还在,你点进去会报错说指定的主题不存在 过三十分钟再刷新页面, ...
- CSS中的margin、border和padding的区别
aaarticlea/gif;base64,R0lGODlhuQEbAbMAAP8AM8zMzGZmYszMmZmZZkIP/5qE/8zM/wICApmZmf//zP///wAAAAAAAAAAAA
- GMM高斯混合模型 学习(2)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHpxMjAwODExMjExMDc=/font/5a6L5L2T/fontsize/400/fill/I0 ...
- 编程算法 - 从1到n整数中1出现的次数 代码(C)
从1到n整数中1出现的次数 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 输入一个整数n, 求从1到n这n个整数的十进制表示中1出现的次数. ...