閱讀179 返回首頁    go 阿裏雲 go 技術社區[雲棲]


噴水裝置(一)

噴水裝置(一)

時間限製:3000 ms  |  內存限製:65535 KB
難度:3
描述
現有一塊草坪,長為20米,寬為2米,要在橫中心線上放置半徑為Ri的噴水裝置,每個噴水裝置的效果都會讓以它為中心的半徑為實數Ri(0<Ri<15)的圓被濕潤,這有充足的噴水裝置i(1<i<600)個,並且一定能把草坪全部濕潤,你要做的是:選擇盡量少的噴水裝置,把整個草坪的全部濕潤。
輸入
第一行m表示有m組測試數據
每一組測試數據的第一行有一個整數數n,n表示共有n個噴水裝置,隨後的一行,有n個實數ri,ri表示該噴水裝置能覆蓋的圓的半徑。
輸出
輸出所用裝置的個數
樣例輸入
2
5
2 3.2 4 4.5 6 
10
1 2 3 1 2 1.2 3 1.1 1 2
樣例輸出
2
5

01.#include <iostream>
02.#include <cmath>
03.#include <algorithm>
04.using namespace std;
05. 
06.int main()
07.{
08.int t;
09.cin >> t;
10. 
11.while (t--)
12.{
13.int n, i;
14.cin >> n;
15. 
16.float *r = new float[n];
17.for (i = 0; i < n; i++)
18.cin >> r[i];
19.sort(r, r+n, greater<float>());//指定從大到小排序
20.//for (i = 0; i < n; i++)
21.// cout << r[i] << " ";
22.//cout << endl;
23. 
24.double width = 0;
25.i = 0;
26.while (width - 20 < 1e-9 && i < n)
27.{
28.width += sqrt(r[i] * r[i] - 1 * 1) * 2;
29.i++;
30.}
31.cout << i << endl;
32. 
33.delete [] r;
34.}
35.return 0;
36.}
 

最後更新:2017-04-02 15:14:53

  上一篇:go 在 JavaScript 中創建 JSON 對象
  下一篇:go a letter and a number