第三十五題 UVA201 正方形 Squares

2021-10-02 03:50:20 字數 2250 閱讀 9403

pdf

題目描述

乙個兒童棋盤遊戲,包含了由點組成的正方形矩陣,由線段連線了一些相鄰的點。遊戲的乙個環節是,要求玩家數出由這些線段所形成的特定大小的正方形有多少個。例如,按下圖所示,有 3 個正方形,其中大小為 1 的有 2 個,大小為 2 的有 1 個。正方形的 「大小」 是指構成它的一條邊的線段數。

你的任務是編寫程式,自動對全部可能的正方形計數。

輸入輸出格式

輸入格式

輸入包含了多個遊戲棋盤。每個棋盤包含了 n^2 個點的正方形矩陣 (其中 2 ≤ n ≤ 9),以及一些起連線作用的橫向或縱向的線段。棋盤的的 n^2 個點和 m 條連線線段,格式如下:

第 1 行:n,表示矩陣中單行或單列的點的數目

第 2 行:m,表示連線線段的數目

接下來的 m 行,每行是以下兩種格式之一:

(1) h i j 形式,表示第 i 行的橫向線段,連線了第 j 列的點和它右邊的第 j + 1 列的點;

(2) v i j 形式,表示第 i 列的縱向線段,連線了第 j 行的點和它下方的第 j + 1 行的點。

樣例輸入資料的第 1 組,對應於上面的圖示棋盤。

輸出格式

對於每組測試資料,輸出 problem #1, problem #2 等標識,並輸出棋盤上的各種大小的正方形數目,按正方形由小到大的順序排列。如果不存在任何大小的正方形,則列印相應的提示訊息。將各組測試資料以一行星號間隔,星號上下方各有乙個空行。請參見示例的格式。

——translated by core

輸入輸出樣例

輸入 #1複製416

h 1 1

h 1 3

h 2 1

h 2 2

h 2 3

h 3 2

h 4 2

h 4 3

v 1 1

v 2 1

v 2 2

v 2 3

v 3 2

v 4 1

v 4 2

v 4 323

h 1 1

h 2 1

v 2 1

輸出 #1複製

problem #1

2 square (s) of size 1

1 square (s) of size 2

problem #2

no completed squares can be found.

#include

#include

#include

#define maxn 11

using

namespace std;

int c[maxn]

[maxn]

,r[maxn]

[maxn]

;// r- hang c - lie

int len[maxn]

;inline

intjudge

(int lens,

int x,

int y)

return1;

// 是正方形

}int

main

(int argc,

char

* ar**)

if(kase !=1)

printf

("\n**********************************\n\n");

printf

("problem #%d\n\n"

,kase)

;for

(int i=

1; i<=n; i++

)// 列舉 邊長

for(

int x=

1; x<=n-i+

1; x++

)for

(int y=

1; y<=n-i+

1; y++)if

(judge

(i,x,y)==1

)int flag =0;

for(

int i=

1; i<=n; i++)if

(len[i])if

(flag ==0)

printf

("no completed squares can be found.\n");

}return0;

}

r[x]

[y]代表(x,y)點有一條向右的線段

c陣列 同理 代表向下

uva 201 Squares(數正方形)

習題4 2 正方形 squares,acm icpc world finals 1990,uva201 有n行n列 2 n 9 的小黑點,還有m條線段連線其中的一些黑點。統計這些線段連成 了多少個正方形 每種邊長分別統計 行從上到下編號為1 n,列從左到右編號為1 n。邊用h i j和v i j表示...

LeetCode第三十五題 Python實現

title leetcode no.35 categories tags 給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5 輸出 2 示例 2 輸入 1,3,5,6 ...

Leetcode第三十五題 搜尋插入位置

題目 給定乙個排序陣列和乙個目標值,在陣列中找到目標值,並返回其索引。如果目標值不存在於陣列中,返回它將會被按順序插入的位置。你可以假設陣列中無重複元素。示例 1 輸入 1,3,5,6 5 輸出 2 示例 2 輸入 1,3,5,6 2 輸出 1 示例 3 輸入 1,3,5,6 7 輸出 4 示例 4...