无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

USACO銀牌題目 CF1365D Solve The Maze(DFS,Floodfill) 參考代碼

2022-06-24 10:20 作者:信奧賽USACO鄭老師  | 我要投稿

#include <bits/stdc++.h>

using namespace std;

int maze[50][50];


void setblock(int i,int j,int n, int m){

? ? maze[i][j]=1;

? ? vector<pair<int,int>> nbv={{i,j-1},{i,j+1},{i-1,j},{i+1,j}};

? ? for(auto k : nbv){

? ? ? ? int x=k.first, y=k.second;

? ? ? ? if(x>=0 && x<n && y>=0 && y<m){

? ? ? ? ? ? maze[x][y]=1;

? ? ? ? }

? ? }

}? ??


int DFS(int i,int j,int n, int m){

? ? int reach_good=0;

? ? stack<pair<int,int>> s;

? ? bool vis[n][m];

? ? memset(vis,false,sizeof(vis));

? ? if(maze[i][j]==0){

? ? ? ? s.push(make_pair(i,j));

? ? ? ? vis[i][j]=true;

? ? }

? ? while(s.size()>0){

? ? ? ? pair<int,int> a=s.top();

? ? ? ? s.pop();

? ? ? ? int i=a.first, j=a.second;

? ? ? ? vector<pair<int,int>> nbv={{i,j-1},{i,j+1},{i-1,j},{i+1,j}};

? ? ? ? for(auto k : nbv){

? ? ? ? ? ? int x=k.first, y=k.second;

? ? ? ? ? ? if(x>=0 && x<n && y>=0 && y<m){

? ? ? ? ? ? ? ? if(!vis[x][y] && maze[x][y]!=1){

? ? ? ? ? ? ? ? ? ? vis[x][y]=true;

? ? ? ? ? ? ? ? ? ? s.push(make_pair(x,y));

? ? ? ? ? ? ? ? ? ? if(maze[x][y]==2){//good person

? ? ? ? ? ? ? ? ? ? ? ? reach_good++;

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? }

? ? return reach_good;

}? ??

? ??

? ? ? ??


int main()

{

? ? int t;

? ? cin>>t;

? ? while(t>0){

? ? ? ? t--;

? ? ? ? int n,m;

? ? ? ? cin>>n>>m;

? ? ? ? int goodPersonCount=0;

? ? ? ? memset(maze,0,sizeof(maze));

? ? ? ? for(int i=0;i<n;i++){

? ? ? ? ? ? string ts;

? ? ? ? ? ? cin>>ts;

? ? ? ? ? ? for(int j=0;j<m;j++){

? ? ? ? ? ? ? ? if(ts[j]=='#'){

? ? ? ? ? ? ? ? ? ? maze[i][j]=1;

? ? ? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? ? ? if(ts[j]=='B'){

? ? ? ? ? ? ? ? ? ? ? ? setblock(i,j,n,m);

? ? ? ? ? ? ? ? ? ? }else{

? ? ? ? ? ? ? ? ? ? ? ? if(ts[j]=='G'){

? ? ? ? ? ? ? ? ? ? ? ? ? ? goodPersonCount++;

? ? ? ? ? ? ? ? ? ? ? ? ? ? if(maze[i][j]==0){//not touched by bad guy

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? maze[i][j]=2;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? ? ? ? ? }// for '.' do nothing

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? }

? ? ? ? }

? ? ? ? if(DFS(n-1,m-1,n,m) < goodPersonCount){

? ? ? ? ? ? cout<<"No"<<endl;

? ? ? ? }else{

? ? ? ? ? ? cout<<"Yes"<<endl;

? ? ? ? }

? ? }? ? ? ??

? ? return 0;

}


USACO銀牌題目 CF1365D Solve The Maze(DFS,Floodfill) 參考代碼的評論 (共 條)

分享到微博請遵守國家法律
盐源县| 肥城市| 兴安县| 威信县| 库伦旗| 临安市| 锡林浩特市| 定远县| 桑植县| 亳州市| 汶上县| 陇南市| 兴业县| 阿勒泰市| 沅陵县| 齐齐哈尔市| 乐陵市| 保康县| 长泰县| 灵璧县| 富蕴县| 如东县| 黄龙县| 仪陇县| 巴林右旗| 蕉岭县| 靖边县| 墨脱县| 图木舒克市| 莎车县| 兴城市| 青海省| 甘孜县| 奉新县| 西青区| 越西县| 永寿县| 南城县| 南召县| 天祝| 社旗县|