BOJ:2012有機白菜(C++)
質問する
Code #include <iostream>
#include <queue>
#include <utility>
using namespace std;
#define X first
#define Y second
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int T;
cin >> T;
while(T--)
{
int M, N, K, num=0;
int board[52][52];
int vis[52][52];
/* 입력 시작 */
cin >> M >> N >> K; // M : x / N : y
for(int i=0;i < M;i++)
{
fill(board[i],board[i]+M,0);
fill(vis[i],vis[i]+M,0);
}
for(int i=0;i<K;i++)
{
pair<int,int> tmp;
cin >> tmp.X >> tmp.Y;
board[tmp.X][tmp.Y] = 1;
}
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{
if(vis[i][j] || board[i][j] != 1) continue;
num++;
queue<pair<int,int>> Q;
Q.push({i,j});
vis[i][j] = 1;
while(!Q.empty())
{
auto cur = Q.front(); Q.pop();
for(int dir=0;dir<4;dir++)
{
int nx = cur.X + dx[dir];
int ny = cur.Y + dy[dir];
if(nx < 0 || nx >= M || ny<0 || ny>= N) continue;
if(vis[nx][ny] || board[nx][ny] != 1) continue;
vis[nx][ny] = 1;
Q.push({nx, ny});
}
}
}
}
cout << num <<'\n';
}
}
#include <iostream>
#include <queue>
#include <utility>
using namespace std;
#define X first
#define Y second
int dx[4] = {1, 0, -1, 0};
int dy[4] = {0, 1, 0, -1};
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
int T;
cin >> T;
while(T--)
{
int M, N, K, num=0;
int board[52][52];
int vis[52][52];
/* 입력 시작 */
cin >> M >> N >> K; // M : x / N : y
for(int i=0;i < M;i++)
{
fill(board[i],board[i]+M,0);
fill(vis[i],vis[i]+M,0);
}
for(int i=0;i<K;i++)
{
pair<int,int> tmp;
cin >> tmp.X >> tmp.Y;
board[tmp.X][tmp.Y] = 1;
}
for(int i=0;i<M;i++)
{
for(int j=0;j<N;j++)
{
if(vis[i][j] || board[i][j] != 1) continue;
num++;
queue<pair<int,int>> Q;
Q.push({i,j});
vis[i][j] = 1;
while(!Q.empty())
{
auto cur = Q.front(); Q.pop();
for(int dir=0;dir<4;dir++)
{
int nx = cur.X + dx[dir];
int ny = cur.Y + dy[dir];
if(nx < 0 || nx >= M || ny<0 || ny>= N) continue;
if(vis[nx][ny] || board[nx][ny] != 1) continue;
vis[nx][ny] = 1;
Q.push({nx, ny});
}
}
}
}
cout << num <<'\n';
}
}
縦の長さ=N
N*M配列で近いですが、正反対です.
(?なんで?知ってたら教えて)
Reference
この問題について(BOJ:2012有機白菜(C++)), 我々は、より多くの情報をここで見つけました https://velog.io/@neity16/BOJ-1012-유기농-배추-Cテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol