UVa 10382噴水裝置(降維處理後,再貪心)

2021-09-27 13:32:43 字數 1298 閱讀 1095

題目鏈結

長 l公尺,寬 w 公尺的草坪裡裝有 n個澆灌噴頭。每個噴頭都裝在草坪中心線上(離兩邊各w/2 公尺)。我們知道每個噴頭的位置(離草坪中心線左端的距離),以及它能覆蓋到的澆灌範圍。

請問:如果要同時澆灌整塊草坪,最少需要開啟多少個噴頭?

分析:對於此模型,我們不熟悉,熟悉的是在一條線上的處理,我們可以把此模型降維處理,變成一維的。對於乙個圓的噴灑範圍,可以看成看成上圖中黃色的範圍。,對於和長方形相切的圓,可以看成乙個點,,沒有覆蓋範圍。對於和長方形沒有相交的圓,就不用考慮

對於每乙個黃色區間,按照左端點從小到大排序。每次都選擇能往後延伸最長的那個區間

**

#include

#include

#include

#include

using

namespace

std;

intn,l

,w;struct

nodes[

15001];

intcmp

(nodet1,

nodet2)

intmain()

}sort(s

,s+k

,cmp);

if(s[

0].l

>0)

/*左邊的沒有覆蓋,可以直接輸出*/

intbook

[15001];

memset

(book,0

,sizeof

(book))

;int

flag

,ans=0

,t;double

head=0

,tail=0

;while(1

)}if(

flag==

1||flag==

2)else

break;if

(flag==

2)break;}

if(tail

flag=0

;if(flag==

0)printf

("-1\n");

else

printf

("%d\n"

,ans);

}return0;

}

1038 角谷猜想

1038 角谷猜想 description 角谷猜想 日本一位中學生發現乙個奇妙的 定理 請角谷教授證明,而角谷教授無能為力,於是產生角谷猜想。猜想的內容是 任給乙個自然數,若為偶數除以2,若為奇數則乘3加1,得到乙個新的自然數然後按照上面的法則繼續演算,若干次後得到的結果必然為1,請程式設計驗證。...

1038神經網路

這道題也可以用佇列來做,但比較麻煩。沒辦法,蒟蒻一枚。首先,將起點 ci 1的點 放入佇列之中。當head tail時,head,將隊首的點 team head 展開去找他的兒子節點。如果兒子節點沒放入佇列則放入。l代表本層最後乙個點在team 中的序號,l2用於記錄修改前的l,便於輸出。當head...

1038 演算法提高 分蘋果

時間限制 1 sec 記憶體限制 256 mb 提交 10 解決 4 提交 狀態 討論版 小朋友排成一排,老師給他們分蘋果。小朋友從左到右標號1.n。有m個老師,每次第i個老師會給第li個到第ri個,一共ri li 1個小朋友每人發ci個蘋果。最後老師想知道每個小朋友有多少蘋果。第一行兩個整數n m...