成都免费建站,静态网页模板源码,百度网页版浏览器入口,市场营销策略ppt数据水了。。。 不知道正解是什么 将TOM放在一个0上经过输入的 1 2 R 这样走 还能在图上则这个点可行#xff08;走的过程中不能走出图#xff09; 求有几个0 可行 直接dfs 完全没有别的思路 题目要求必须 走 A - B 步 所以在走A步不能遇到 1 #include cstdio
#inc… 数据水了。。。 不知道正解是什么 将TOM放在一个0上经过输入的 1 2 R 这样走 还能在图上则这个点可行走的过程中不能走出图 求有几个0 可行 直接dfs 完全没有别的思路 题目要求必须 走 A - B 步 所以在走A步不能遇到 1 #include cstdio
#include cstdlib
#include cstring
#include climits
#include cctype
#include cmath
#include string
#include sstream
#include iostream
#include algorithm
#include iomanip
using namespace std;
#include queue
#include stack
#include vector
#include deque
#include set
#include map
typedef long long LL;
#pragma comment(linker, /STACK:1024000000,1024000000)
#define pi acos(-1.0)
#define lson l, m, rt1
#define rson m1, r, rt1|1
typedef pairint, int PI;
typedef pairint, PI PP;
#ifdef _WIN32
#define LLD %I64d
#else
#define LLD %lld
#endif
//LL quick(LL a, LL b){LL ans1;while(b){if(b 1)ans*a;aa*a;b1;}return ans;}
inline int read()
{char ch ;int ans0;while(ch0 || ch9)chgetchar();while(ch9 ch0){ansans*10ch-0;chgetchar();}return ans;
}
//inline void print(LL x){printf(LLD, x);puts();}
bool mp[105][105];
PP step[1005];
int d, m, n;
bool solve(int r, int c,int x)
{if(rm || cn)return false;if(r0 || c0)return false;if(xd)if(!mp[r][c])return true;else return false;int astep[x].second.first;int bstep[x].second.second;//bool flag0;if(step[x].first0){for(int ic-1; ic-a; i--){if(i0)return false;if(mp[r][i])return false;}for(int ic-a; ic-b; i--){if(solve(r,i,x1))return true;}}if(step[x].first1){for(int ic1; ica; i){if(in)return false;if(mp[r][i])return false;}for(int ica; icb; i){if(solve(r,i,x1))return true;}}if(step[x].first2){for(int ir-1; ir-a; i--){if(i0)return false;if(mp[i][c])return false;}for(int ir-a; ir-b; i--){if(solve(i,c,x1))return true;}}if(step[x].first3){for(int ir1; ira; i){if(im)return false;if(mp[i][c])return false;}for(int ira; irb; i){if(solve(i,c,x1))return true;}}return false;
}
int main()
{
#ifndef ONLINE_JUDGEfreopen(in.txt, r, stdin);freopen(out.txt, w, stdout);
#endifint tread();while(t--){mread(), nread();for(int i0; im; i)for(int j0; jn; j)mp[i][j]read();d0;while(true){int aread(), bread();if(a0 b0)break;char op[2];int c;scanf(%s, op);if(op[0]L)c0;else if(op[0]R)c1;else if(op[0]U)c2;else if(op[0]D)c3;step[d]make_pair(c, make_pair(a, b));}int ans0;for(int i0; im; i)for(int j0; jn; j)if(!mp[i][j])if(solve(i, j,0))ans;printf(%d\n, ans);}return 0;
}转载于:https://www.cnblogs.com/kewowlo/p/4088355.html