最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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) 參考代碼的評論 (共 條)

分享到微博請遵守國家法律
姜堰市| 文水县| 林周县| 文昌市| 寻甸| 贵溪市| 龙游县| 赤峰市| 广宗县| 罗田县| 安岳县| 云龙县| 西吉县| 长武县| 大兴区| 屏东县| 达日县| 泸水县| 上高县| 广元市| 平利县| 喜德县| 九龙县| 揭东县| 互助| 太康县| 嘉兴市| 乐陵市| 禄劝| 灌阳县| 乌拉特中旗| 安阳市| 隆子县| 丰镇市| 衡南县| 洪江市| 隆德县| 鄂托克前旗| 大厂| 绥宁县| 大冶市|