1 条题解
-
1
#include <bits/stdc++.h> using namespace std; int mp[1005][1005]; int n,m,sx,sy,fx,fy,k,dq,dw,tq,tw,ww,c; int dx[4]={0,0,1,-1}; int dy[4]={1,-1,0,0}; int vis[15][15]; int maxx=-1; int minn=1000005; void dfs(int x,int y,int len){ if(x==fx&&y==fy){ c++; maxx=max(maxx,len); minn=min(minn,len); return; } for(int i=0;i<=3;i++){ int tx=dx[i]+x; int ty=dy[i]+y; if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&mp[tx][ty]!=1&&vis[tx][ty]==0&&ww>mp[tx][ty]){ vis[tx][ty]=1; dfs(tx,ty,len+1); vis[tx][ty]=0; } } } int main(){ int xx,yy; cin>>n>>m>>k>>fx>>fy; cin>>dq>>dw>>tq>>tw>>ww; for(int i=1;i<=dq;i++){ cin>>xx>>yy; mp[xx][yy]=dw; } for(int i=1;i<=tq;i++){ cin>>xx>>yy; mp[xx][yy]=tw; } cin>>xx>>yy; sx=xx; sy=yy; for(int i=1;i<=k;i++){ cin>>xx>>yy; mp[xx][yy]=1; } vis[sx][sy]=1; dfs(sx,sy,0); if(c==0){ cout<<"0 0 0"; return 0; } cout<<c<<" "<<minn<<" "<<maxx; return 0; }
- 1
信息
- ID
- 103
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 7
- 标签
- 递交数
- 4
- 已通过
- 1
- 上传者