MZOJ 1345 hero
一道宽搜模版题,可写错了两个地方的我只得了56(掩面痛哭)
http://10.37.2.111/problem.php?id=1345
先看看正确的
#include <bits/stdc++.h> #define read read() #define up(i,l,r) for(int i = l; i<=r; i++) using namespace std;int read {int x = 0; char ch = getchar();while(ch < 48 || ch > 57) ch = getchar();while(ch >= 48 && ch <= 57) {x = 10 * x + ch - 48; ch = getchar();}return x; }const int N = 105;int n,m,k; int sx,sy,ex,ey; int ans = INT_MAX; int dx[] = {0,1,-1, 0,0};//上,下,左,右; int dy[] = {0,0, 0,-1,1}; struct node{int x,y,step;}st; int th[N][N],vis[N][N]; int nx,ny;void updata(int i,int p) {if(i==1) (nx += p) > n ?nx = n : nx; //上else if(i==2) (nx -= p) < 1 ?nx = 1 : nx;//下 else if(i==3) (ny -= p) < 1 ?ny = 1 : ny;//左 else if(i==4) (ny += p) > m ?ny = m : ny;//右 }void bfs() {queue<node>q;st.step = 0;st.x = sx;st.y = sy;q.push(st);vis[sx][sy]=1;while(!q.empty()){node cur = q.front(); q.pop();if(cur.x == ex && cur.y == ey) {printf("%d",cur.step); exit(0);}up(i,1,4){nx = cur.x + dx[i];ny = cur.y + dy[i];
if(nx < 1|| ny < 1 || nx > n || ny > m || vis[nx][ny]) continue;vis[nx][ny] = 1;node nxt; nxt.x = nx; nxt.y = ny; nxt.step = cur.step + 1;q.push(nxt);}}printf("Impossible"); }int main() {freopen("hero2.in","r",stdin);n = read; m = read; k = read;int x,y;int cnt = 0;up(i,1,k){x = read; y = read; th[x][y] = read;}sx = read; sy = read;ex = read; ey = read;bfs(); }
错误1:代码笔误;
void updata(int i,int p) {if(i==1) (nx += p) > n ?n : nx; //上else if(i==2) (nx -= p) < 1 ?1 : nx;//下 else if(i==3) (ny -= p) < 1 ?1 : ny;//左 else if(i==4) (ny += p) > m ?m : ny;//右 }
看出什么了吗? -> 忘了赋值了;
错误2:思维漏洞;
if(th[nx][ny]) updata(i,th[nx][ny]);
弹簧可以连续跳啊连续跳 -> 所以要多次更新
记住教训啊;
转载于:https://www.cnblogs.com/mzg1805/p/10316175.html
MZOJ 1345 hero相关推荐
- 【宽搜】mzoj 1345 英雄 hero
题面 题目描述(Description): 城堡迷宫由N×M个格子组成,英雄Mario玛丽奥要在城堡迷宫中从起始点移动到目标点去拯救被怪物掳去的公主,他每一步只能从当前所在的格子移动到相邻的4个格子之 ...
- bzoj 3864: Hero meet devil [dp套dp]
3864: Hero meet devil 题意: 给你一个只由AGCT组成的字符串S (|S| ≤ 15),对于每个0 ≤ .. ≤ |S|,问 有多少个只由AGCT组成的长度为m(1 ≤ m ≤ ...
- Flutter Hero 实现组件跨界面跳动效果
感谢:https://juejin.im/post/5c4dae0de51d456e41391586 脑图先行: 今天算是完成了第一个flutter练手项目,真的佩服这个UI设计,简直了!给出链接,好 ...
- 【Flutter】Hero 动画 ( Hero 实现径向动画 | Hero 组件 createRectTween 设置 )
文章目录 ◯.Hero 构造函数 一.圆形方形组件 二.创建页面 1 的组件 ( Hero 组件 1 ) 三.创建页面 2 的组件 ( Hero 组件 2 ) 四.完整代码示例 五.相关资源 ◯.He ...
- 【Flutter】Hero 动画 ( Hero 动画使用流程 | 创建 Hero 动画核心组件 | 创建源页面 | 创建目的页面 | 页面跳转 )
文章目录 ◯.Hero 动画简介 一.创建 Hero 动画核心组件 二.创建源页面 三.创建目的页面 四.页面跳转 五.完整代码示例 六.相关资源 ◯.Hero 动画简介 Hero Widget 动画 ...
- java星际小战_首届中国星际战队联赛:TSG夺冠,小hero刘建宏大战惊天地泣鬼神...
原标题:首届中国星际战队联赛:TSG夺冠,小hero刘建宏大战惊天地泣鬼神 导读:由SCboy主办的中国首届星际争霸战队联赛最终是以TSG战队惊险夺冠而落幕,总决赛的精彩程度令人始料未及. 半决赛,& ...
- Flutter入门:Hero共享元素
前言 在Android中可以设置共享元素,这样两个页面相同的元素在转场时就会有一个过渡动画,效果炫酷,用户体验也更好. 那么在Flutter中有同样的功能么? 答案是一定的,在Flutter它就是He ...
- 【BZOJ3866】The Romantic Hero DP
[BZOJ3866]The Romantic Hero 题意:一个序列,从中选取两个子序列S和T,满足S中所有元素都在T左边,并且S中所有数的xor和=T中所有数的and和,求方案数.n<=10 ...
- vue 页面切换动画_Flutter Hero动画让你的APP页面切换充满动效 不一样的体验 不一样的细节处理...
优美的应用体验 来自于细节的处理,更源自于码农的自我要求与努力,当然也需要码农年轻灵活的思维. 本文章实现的Demo效果,如下图所示: class HeroHomePage extends State ...
最新文章
- 路由器中Rom/Ram/NVRAM/FLASH的区别
- 用户画像-参考整理医疗app标签
- 查看CentOS的系统版本(亲测)
- 退出页面删除cookie_Cookie 机制
- 细说 Form (表单)(转)
- 递增的整数序列链表的插入_你所不知道的序列容器
- 在同时使用animation和translate时,translate无效
- pdf reference官方指南之-语法基础和文件结构
- smart210 资源
- 计算机毕业设计jspm平面设计类众包威客网网站mjmBBmysql程序
- java jxls_java操作excel及jxls(Z)
- Power System中基于VIOS的虚拟以太网实现
- Iphone 苹果手机HEIC照片格式 win10电脑打开 解决方案
- 基于N-gram的双向最大匹配中文分词
- 支付宝社交风波以道歉收场,微信小程序会有不同结局吗?
- 如何关闭win10自带杀毒?
- linux查看历史开机时间,查看linux系统的开机时间/重启历史记录
- c语言魔法阵原理,魔法阵构成理论及运行原理
- 基于STM32与红外感应开关的自动门设计与实现(结构+设计)
- Fragment懒加载,上岸蚂蚁金服
热门文章
- java并发集合面试题,那些经常被问的JAVA面试题(1)—— 集合部分
- linux异常关机内存,linux关机及问题解决
- linux常见基础服务,常用的linux命令的基本使用(一)
- java餐饮管理系统图片,基于jsp的酒店餐饮管理系统-JavaEE实现酒店餐饮管理系统 - java项目源码...
- oracle ora 03137,今天遇到奇怪的ORA-03137错误(包含trc文件)
- 计算机室内设计cad实践报告,cad实习报告3000字
- java mysubmail_关于MyBatis10种超好用的写法(收藏)
- 用java输入学生姓名查询成绩_编写一个Java程序,提示用户输入学生数量,学生姓名和他们的成绩,并按照成绩的降序打印学生姓名...
- linux 如何查看属性,linux 下查看系统属性
- python判断字符串结尾-字符串#69301_27种Python字符串操作方法大全