单挑女飞贼

实际上这是一道水题

本弱菜由于看错题WA了好多次orzzzz……

思路

按照最普通的思路 

从林月如的位置进行宽搜 

每次取出头结点判断飞镖是否可以攻击到女飞贼

没有用STL队列所以代码很丑

还有就是数据很弱 这样做居然可以秒掉……

代码

#include <cstdio>
#include <cstring>
#include <iostream>using namespace std;const int Maxn=301;struct node {int x,y,step;}point[20000];char c;
int dx[5]={0,1,-1,0,0};
int dy[5]={0,0,0,1,-1};
int n,m,x1,x2,y1,y2;
bool map[Maxn][Maxn],vis[Maxn][Maxn];int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){cin>>c;if(c=='O')map[i][j]=0;if(c=='X')map[i][j]=1;}while(scanf("%d%d%d%d",&x1,&y1,&x2,&y2)!=EOF && x1 && x2 && y1 && y2 ){memset(point,0,sizeof(point));memset(vis,0,sizeof(vis));int head=1,tail=1;point[head].x=x2;point[head].y=y2;point[head].step=0;bool judge=1;while(head<=tail){int nx=point[head].x;int ny=point[head].y;if(nx==x1){int l=min(ny,y1),r=max(ny,y1),pd=1;for(int j=l+1;j<r;j++)if(map[nx][j]==1){pd=0;break;}if(pd==1){printf("%d\n",point[head].step);judge=0;}}if(judge==0)break;if(ny==y1){int l=min(nx,x1),r=max(nx,x1),pd=1;for(int j=l+1;j<r;j++)if(map[j][ny]==1){pd=0;break;}if(pd==1){printf("%d\n",point[head].step);judge=0;}}if(judge==0)break;if(nx-ny==x1-y1){int p=min(nx,x1),q=min(ny,y1),pd=1;int mx=max(nx,x1),my=max(ny,y1);while(p<mx&&q<my){if(map[p][q]==1){pd=0;break;}p++;q++;}if(pd==1){printf("%d\n",point[head].step);judge=0;}}if(judge==0)break;if(nx+ny==x1+y1){int p=min(nx,x1),q=max(ny,y1),pd=1;int mx=max(nx,x1),my=min(ny,y1);while(p<mx&&q>my){if(map[p][q]==1){pd=0;break;}p++;q--;}if(pd==1){printf("%d\n",point[head].step);judge=0;}}if(judge==0)break;for(int i=1;i<=4;i++){int xx=nx+dx[i];int yy=ny+dy[i];if(xx>=1&&yy>=1&&xx<=n&&yy<=m&&!map[xx][yy]&&!vis[xx][yy]){tail++;point[tail].x=xx;point[tail].y=yy;point[tail].step=point[head].step+1;vis[xx][yy]=1;}}head++;}if(judge==1)printf("Impossible!\n");}
}

欢迎指出Bug


End。

vijos P1263 单挑女飞贼相关推荐

  1. vijos 1006 晴天小猪历险记之Hill——数字三角形的终极变化

    题目链接:https://vijos.org/p/1006 数字三角形原题看这里:http://www.cnblogs.com/huashanqingzhu/p/7326837.html 背景 在很久 ...

  2. vijos 1476 旅游规划题解

    题目链接:https://vijos.org/p/1476 解:因为这一定是一棵树,所以我们多画几次图,就会发现所有的最长路径中心点都一样,且中心点把这条最长路径分成两段等长的路. 那么做法就很简单啦 ...

  3. cocos creator 安卓原生平台环境_竞技对抗小游戏单挑篮球开发历程 | Cocos技术派第12期...

    本文来自于"Cocos 荣耀讲师"征稿活动第1期,最先发表于 Cocos 中文社区,作者 ID:蟹老板,2017年加入社区,文章作品包括<猎头专家的开发历程>等. Co ...

  4. Vijos P1848 记数问题【进制】

    描述 试计算在区间 1 到 n 的所有整数中,数字 x(0 ≤ x ≤ 9)共出现了多少次?例如,在 1 到 11 中,即在 1.2.3.4.5.6.7.8.9.10.11 中,数字 1 出现了 4 ...

  5. 腾讯AI单挑碾压王者荣耀职业玩家:人类15场只能赢1局,坚持不到8分钟 | “绝悟”技术细节披露...

    乾明 发自 凹非寺  量子位 报道 | 公众号 QbitAI 最新消息,腾讯又围绕王者荣耀AI"绝悟"发表了新论文,已经被AI顶会AAAI 2020收录. 这是继今年8月份绝悟在5 ...

  6. Vijos P1131 最小公倍数和最大公约数问题【暴力】

    最小公倍数和最大公约数问题 描述 输入二个正整数x0,y0(2≤x0≤100000,2≤y0≤1000000),求出满足下列条件的P.Q的个数. 条件:1.P.Q是正整数 2.要求P.Q以xO为最大公 ...

  7. Vijos P1103 校门外的树【线段树,模拟】

    校门外的树 描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,--, ...

  8. Vijos p1165 火烧赤壁 离散化+单调栈

    题目链接:https://vijos.org/p/1165 题意:输入n(n <= 20,000)段线段的端点,问所有线段的长度总和为多少? input: 3 -1 1 5 11 2 9 out ...

  9. |Vijos|树状数组|P1512 SuperBrother打鼹鼠

    https://vijos.org/p/1512 一个二维树状数组,注意树状数组不能出现0,把所有坐标+1即可,求子矩阵和为 sub(x2,y2) - sub(x1-1,y2) - sub(x2, y ...

最新文章

  1. CSS 定位 (Positioning)
  2. pyqt5学习(四)事件和信号
  3. 优秀渗透工具资源整理(持续更新)
  4. 禅道开源版用户手册_自动化建模 | H2O开源工具介绍
  5. JVM垃圾回收机制总结
  6. 淮阴工学院计算机答辩,淮阴工学院关于做好2014级研究生学位论文答辩工作的通知...
  7. CocoaPods停在Analyzing dependencies解决方案
  8. 20180921 su与sudo命令、限制root用户通过ssh远程登录
  9. 使用systemd管理程序进程
  10. install4j Enterprise Edition序列号
  11. 【Redis 开发与运维】开发运维的“陷阱”
  12. 四轮循迹小车基础程序
  13. 如何构建GCC交叉编译器
  14. window驱动备份与安装
  15. 一个IO控制很多个LED,这个技能你get到了吗
  16. 基于JavaSwing+MySQL实现的超市商品管理系统
  17. 如何写好一篇论文——闵老师《论文写作》心得
  18. 社会化营销,微博如何老树发新芽?
  19. 2015百度之星复赛(hdu5258 - 5262)
  20. 《1024 程序员节》—我喂自己袋盐

热门文章

  1. 33岁,工作10年的老测试员被裁,所谓经验根本不值钱
  2. 3D建模软件应该学中文版还是英文版?Maya软件应该学中文版还是英文版?
  3. 了解建模三大软件:3Dmax、Maya、zbrush
  4. 微信记录恢复软件MMRecovery下载与使用方法
  5. 后台接收前台传来的图片并保存在本地
  6. 虚拟偶像PK现实偶像,哪个更能发挥粉丝经济效应?
  7. STM32F103调试出现 while((RCC-CR RCC_CR_PLL2RDY) == 0) 死循环。
  8. SAP MR21修改标准价
  9. 五一不看人人人人人人,哪儿耍合适? | Alfred数据室
  10. 神奇宝贝五分类:网络自定义