問題描述
小明和朋友們一起去郊外植樹,他們帶了一些在自己實驗室精心研究出的小樹苗。
小明和朋友們一共有 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...