洛谷P1191 矩形

2021-09-12 07:51:28 字數 1624 閱讀 1987

給出乙個n×nn \times nn×n的矩陣,矩陣中,有些格仔被染成白色,有些格仔被染成黑色,現要求矩陣中白色矩形的數量

輸入格式:

第一行,乙個整數nnn,表示矩形的大小。

接下來nnn行,每行nnn個字元,這些字元為「www」或「bbb」。其中「www」表示白格,「bbb」表示黑格。

輸出格式:

乙個正整數,為白色矩形數量

輸入樣例#1:複製

4

wwbw

bbwb

wbww

wbwb

輸出樣例#1:複製

15
對於30%30\%30%的資料,n≤50n ≤ 50n≤50;

對於100%100\%100%的資料,n≤150n ≤ 150n≤150;

#include #include #include #include #include #include #include #include using namespace std;

#define max_n 150

int g[max_n + 5][max_n + 5] = ;

int f[max_n + 5][max_n + 5] = ;

int main()

}/** 1111

* 1101

* 1001

* 1100

*/ for (int i = 1; i <= n;i++)

}//(i, j), (k, l)

int ans = 0;

for (int i = 1; i <= n; i++) }}

}cout << ans << endl;

return 0;

}

#include using namespace std;

int g[200][200];

int main()

for(int i=1;i<=n;i++)

}int ans=0;

for (int i=1;i<=n;i++) }}

cout<

#include #include #include #include #include #include #include #include using namespace std;

#define max_n 1000

#define mod_num 100007

int f[max_n + 5][max_n + 5] = ;

int dp[max_n + 5][max_n + 5] = ;

int s[max_n + 5] = , top = -1;

int main()

f[i][m] = -1;

}for (int i = n - 2; i >= 0; i--)

}int ans = 0;

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

}cout << ans << endl;

return 0;

}

洛谷P1191 矩形

給出乙個n n的矩陣,矩陣中,有些格仔被染成白色,有些格仔被染成黑色,現要求矩陣中白色矩形的數量 輸入格式 第一行,乙個整數n,表示矩形的大小。接下來n行,每行n個字元,這些字元為 w 或 b 其中 w 表示白格,b 表示黑格。輸出格式 乙個正整數,為白色矩形數量 輸入樣例 1 4 wwbw bbw...

洛谷P1369 矩形

題目描述 給出平面上的n個點,請找出乙個邊與座標軸平行的矩形,使得它的邊界上有盡量多的點 輸入輸出格式 輸入格式 第一行乙個整數n,為平面內點的個數。第2 n 1行每行兩個整數,為點的橫 縱座標。輸出格式 只有乙個數,為所取矩形邊界上能包含盡量多的點的個數。輸入輸出樣例 輸入樣例 1 10 2 3 ...

洛谷P1034矩形覆蓋

據說是dp,所以我用dfs,居然a了,資料真水 說說思路,我們要求覆蓋所有點且不能重疊,顯然我們要從點入手,我們可以列舉每個點被哪個矩形重疊,因為如果列舉矩形覆蓋點的話,貌似不可做,具體怎麼實現呢?最好小夥伴們手動畫個圖,一下就明白了,列舉每個點被哪個矩形覆蓋,那麼必然是要根據點的座標來調整矩形的位...