標題:
202406新手1-數織Nonogram_找不到judge
[打印本頁]
作者:
may
時間:
2024-10-20 16:23
標題:
202406新手1-數織Nonogram_找不到judge
[attach]20007[/attach]
數織 (Nonogram)
問題敘述
Nonogram 又稱數織,是一種圖形邏輯謎題,玩家需要根據數字提示填滿或空出格子,以形成一幅圖像。數字提示標示在行和列的外側,指示連續的塊狀格子的數量和順序。 圖一為一個正確填寫完畢的數織,第一直行為5表示該行需連續填滿五格。第二橫列為3 1,表示有三個連續填滿的格和一個單獨的填色格子。 圖二的數字提示錯誤,按照此填色方式,第二列的3 1 應為 4,第四行應為1 1,第五行應為1 3。
[attach]20013[/attach]
現在你需要設計一個程序,根據輸入的填色格子,輸出每個行列相應的數字提示。
[attach]20020[/attach]
[attach]20021[/attach]
作者:
may
時間:
2024-10-20 21:43
// nonogram
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
cin >> n;
vector<vector<bool>> grid(n, vector<bool>(n));//bool grid[n][n]
for (int r = 0; r < n; r++)
{
for (int c = 0; c < n; c++)
{
bool b;
cin >> b;
grid[r][c] = b;
}
}
// check columns
for (int c = 0; c < n; c++)
{
bool isEmpty = true;
int count = 0;
for (int r = 0; r < n; r++)
{
if (grid[r][c])//grid[r][c]==1
{
count++;
isEmpty = false;
}
else if (count > 0)//grid[r][c]==0 && count > 0
{
cout << count << " ";
count = 0;
}
}
//一整行刷完後,查看count的值
if (count > 0)
{
cout << count << " ";
}
else if (isEmpty)
{
cout << "0";
}
cout << endl;
}
// check rows
for (int r = 0; r < n; r++)
{
bool isEmpty = true;
int count = 0;
for (int c = 0; c < n; c++)
{
if (grid[r][c])
{
count++;
isEmpty = false;
}
else if (count > 0)
{
cout << count << " ";
count = 0;
}
}
//一整列刷完後,查看count的值
if (count > 0)
{
cout << count << " ";
}
else if (isEmpty)
{
cout << "0";
}
cout << endl;
}
}
/*
5
1 0 0 0 1
1 1 1 1 0
1 0 1 0 1
1 0 1 0 1
1 0 0 1 1
*/
複製代碼
歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/)
Powered by Discuz! 7.2