第十一屆藍橋杯省模擬賽 小明種樹問題 C 描述

2021-10-05 05:44:30 字數 1323 閱讀 8926

問題描述

小明和朋友們一起去郊外植樹,他們帶了一些在自己實驗室精心研究出的小樹苗。

小明和朋友們一共有 n 個人,他們經過精心挑選,在一塊空地上每個人挑選了乙個適合植樹的位置,總共 n 個。他們準備把自己帶的樹苗都植下去。

然而,他們遇到了乙個困難:有的樹苗比較大,而有的位置挨太近,導致兩棵樹植下去後會撞在一起。

他們將樹看成乙個圓,圓心在他們找的位置上。如果兩棵樹對應的圓相交,這兩棵樹就不適合同時植下(相切不受影響),稱為兩棵樹衝突。

小明和朋友們決定先合計合計,只將其中的一部分樹植下去,保證沒有互相衝突的樹。他們同時希望這些樹所能覆蓋的面積和(圓面積和)最大。

輸入格式

輸入的第一行包含乙個整數 n ,表示人數,即準備植樹的位置數。

接下來 n 行,每行三個整數 x, y, r,表示一棵樹在空地上的橫、縱座標和半徑。

輸出格式

輸出一行包含乙個整數,表示在不衝突下可以植樹的面積和。由於每棵樹的面積都是圓周率的整數倍,請輸出答案除以圓周率後的值(應當是乙個整數)。

樣例輸入

61 1 2

1 4 2

1 7 2

4 1 2

4 4 2

4 7 2

樣例輸出

評測用例規模與約定

對於 30% 的評測用例,1 <= n <= 10;

對於 60% 的評測用例,1 <= n <= 20;

對於所有評測用例,1 <= n <= 30,0 <= x, y <= 1000,1 <= r <= 1000。

#include 

#include

using namespace std;

const int maxn =

1005

;int n;

//n個人

int treesum=0;

bool b[maxn]

;//表示這棵樹可不可以種下

typedef struct

tree;

tree p[maxn]

;//儲存樹

int pow

(int x,int y)

void

init()

void

plant

(void)}

for(int k=

0; k(b[k]

) summary+=

pow(p[k]

.r,2);

if(summary>treesum) treesum=summary;}}

int main

(void

)

第十一屆藍橋杯

問題描述 小藍要為一條街的住戶製作門牌號。這條街一共有 2020 位住戶,門牌號從 1 到 2020 編號。小藍製作門牌的方法是先製作 0 到 9 這幾個數字字元,最後根據需要將字 符貼上到門牌上,例如門牌 1017 需要依次貼上字元 1 0 1 7,即需要 1 個 字元 0,2 個字元 1,1 個...

第十一屆藍橋杯省賽 走方格

時間限制 1.0s 記憶體限制 512.0mb 本題總分 20 分 問題描述 在平面上有一些二維的點陣。這些點的編號就像二維陣列的編號一樣,從上到下依次為第 1 至第 n 行,從左到右依次為第 1 至第 m 列,每乙個點可以用行號和列號來表示。現在有個人站在第 1 行第 1 列,要走到第 n 行第 ...

第十一屆藍橋杯省賽題 解碼

問題描述 小明有一串很長的英文本母,可能包含大寫和小寫。在這串字母中,有很多連續的是重複的。小明想了乙個辦法將這串字母表 達得更短 將連續的幾個相同字母寫成字母 出現次數的形式。例如,連續的 5 個 a,即 aaaaa,小明可以簡寫成 a5 也可能簡寫成 a4a aa3a 等 對於這個例子 hhhe...