1419 - Ugly Windows(暴力枚舉)

來源:互聯網
上載者:User

標籤:style   http   color   os   io   for   ar   代碼   

題目連結


題意:在一個介面上有多個視窗,求沒有被其他視窗覆蓋的視窗的個數。

思路:直接暴力枚舉每個視窗的長和寬,以確定右下角是否與左上方相同,如果相同再判斷矩形內部有沒有被其他視窗覆蓋到,注意邊界覆蓋也是算被覆蓋到。

代碼:

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 105;char g[MAXN][MAXN];int n, m, vis[30];int judge(int x1, int y1, int x2, int y2) {    for (int i = x1; i <= x2; i++) {        for (int j = y1; j <= y2; j++) {            if (isupper(g[i][j])) {                if (g[i][j] != g[x1][y1])                     return 0;            }        }      }     return 1;}void solve() {    for (int i = 0; i < n; i++) {        for (int j = 0; j < m; j++) {            if (isupper(g[i][j])) {                int a = j, b = i;                 while (g[i][a + 1] == g[i][j]) {                    a++;                 }                 while (g[b + 1][j] == g[i][j]) {                    b++;                 }                 if (b - i < 2 || a - j < 2)                    continue;                if (g[b][a] == g[i][j] && judge(i, j, b, a))                    vis[g[i][j] - 'A'] = 1;            }         }      }}int main() {    while (scanf("%d%d", &n, &m) && n && m) {        memset(vis, 0, sizeof(vis));        for (int i = 0; i < n; i++)             scanf("%s", g[i]);;        solve();        for (int i = 0; i < 30; i++)             if (vis[i])                printf("%c", i + 'A');        printf("\n");    }     return 0;}


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.