- 偷看漫画(1)
- 2018-01-23 01:44:41 @
管理员,求给此题#6,#14,两个点的数据
2 条评论
-
吴哥——传奇 LV 8 @ 2018-01-23 09:28:28
大神们,管理员们
改一改本**蒟蒻**的代码吧
ps:谢谢数据#include <cstdio> #include <cstdlib> #include <string> #include <cstring> #include <algorithm> #include <iostream> using namespace std; int n,m,te=0,de=0,t=0,lo=0,tx,ty,dx,dy; char a[250][250]={0},lu[300]={0}; bool check(char next) { if(next=='N') { if(tx-1>0&&a[tx-1][ty]=='.') tx--; if(tx-dx>=ty-dy&&tx-dx>=dy-ty) return false; return true; } else if(next=='S') { if(tx+1<=n&&a[tx+1][ty]=='.') tx++; if(tx-dx<=ty-dy&&tx-dx<=dy-ty) return false; return true; } else if(next=='E') { if(ty+1<=m&&a[tx][ty+1]=='.') ty++; if(tx-dx>=ty-dy&&tx-dx<=dy-ty) return false; return true; } else if(next=='W') { if(ty-1>0&&a[tx][ty-1]=='.') ty--; if(tx-dx<=ty-dy&&tx-dx>=dy-ty) return false; return true; } } int main() { scanf("%d%d\n",&n,&m); for(int i=1;i<=n;i++)//读入 { for(int j=1;j<=m;j++) { scanf("%c",&a[i][j]); if(a[i][j]=='T') te=1,tx=i,ty=j,a[i][j]='.'; else if(a[i][j]=='D') de=1,dx=i,dy=j; } getchar(); } scanf("%s",lu); lo=strlen(lu); if(lo==1&&lu[0]>='0'&&lu[0]<='9')//防止路为空 { if(tx-dx>=ty-dy&&tx-dx>=dy-ty)//判断老师是否能一眼看见鸭子 printf("55555~~"); else printf("%c",lu[0]); return 0; } scanf("%d",&t); if(n==0||m==0)//防地图为空 { printf("%d",t); return 0; } if(de==0||te==0)//老师或鸭子不在 { printf("%d",t); return 0; } int all=0;//可看漫画总量 for(int i=0;i<t;i++) { if(check(lu[i%lo]))//循环路线 all++; } if(all==0) { printf("55555~~"); return 0; } printf("%d",all); return 0; }
-
2018-01-23 06:22:58@
第6个数据,地图是空的(n=m=0)也就是说鸭子不在教室,所以答案就是总时间长度。
第14个数据,班主任走的路径是空的,也就是说班主任一直没有移动。
- 1