vijos P1263 单挑女飞贼
来源:互联网 发布:laravel 阿里云邮箱 编辑:程序博客网 时间:2024/04/28 13:55
单挑女飞贼
实际上这是一道水题
本弱菜由于看错题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。
0 0
- vijos P1263 单挑女飞贼
- 单挑女飞贼
- 单挑
- 三国演义单挑谱1
- 三国演义单挑谱2
- 三国演义单挑谱3
- 说说“单挑”之道士
- 女女
- 集成技术:.NET单挑J2EE
- 谈谈法师如何单挑战士
- 我就是海归,不服单挑(ZT)
- 兰博基尼Reventon单挑喷气式战斗机(图)
- bnu1059 星际争霸之单挑 C语言版
- 最适合单挑的前十名人物攻略
- [甄子丹经典]陈真-单挑虹口道场
- vijos 1070
- vijos 1020
- VIJOS 1180
- 为什么现在开发这么累呢?
- SpringMVC提供两种校验机制
- 视图与表
- OC和JS的交互,native页面和web页面混合
- 隔行扫描(interlaced)与逐行扫描(progressive)的图像对比
- vijos P1263 单挑女飞贼
- CentOS7安装Hadoop2.7完整流程
- 文件zip压缩与解压
- Hadoop CombineFileInputFormat原理说明
- POJ1942 Paths on a Grid (组合数学)
- Android总结篇系列:Android Service
- date 与 String 相互转换
- 【素数打印】素数打印
- solr6-定时增量索引