HDU 4823(計算幾何)

2021-09-30 14:06:43 字數 1000 閱讀 5509

魔法師百小度也有遇到難題的時候—— 

現在,百小度正在乙個古老的石門面前,石門上有一段古老的魔法文字,讀懂這種魔法文字需要耗費大量的能量和大量的腦力。 

過了許久,百小度終於讀懂魔法文字的含義:石門裡面有乙個石盤,魔法師需要通過魔法將這個石盤旋轉x度,以使上面的刻紋與天相對應,才能開啟石門。 

但是,旋轉石盤需要n點能量值,而為了解讀密文,百小度的能量值只剩m點了!破壞石門是不可能的,因為那將需要更多的能量。不過,幸運的是,作為魔法師的百小度可以耗費v點能量,使得自己的能量變為現在剩餘能量的k倍(魔法師的世界你永遠不懂,誰也不知道他是怎麼做到的)。比如,現在百小度有a點能量,那麼他可以使自己的能量變為(a-v)*k點(能量在任何時候都不可以為負,即:如果a小於v的話,就不能夠執行轉換)。 

然而,在解讀密文的過程中,百小度預支了他的智商,所以他現在不知道自己是否能夠旋轉石盤,開啟石門,你能幫幫他嗎? 

input

輸入資料第一行是乙個整數t,表示包含t組測試樣例; 

接下來是t行資料,每行有4個自然數n,m,v,k(字元含義見題目描述); 

資料範圍: 

t<=100 

n,m,v,k <= 10^8 

output

對於每組資料,請輸出最少做幾次能量轉換才能夠有足夠的能量點開門; 

如果無法做到,請直接輸出-1。 

sample input

4

10 3 1 2

10 2 1 2

10 9 7 3

10 10 10000 0

sample output

3

-1-1

0

#include #include#includeusing namespace std;

int main()

else

}cout << ans << endl;

} return 0;

}

hdu 3629 計算幾何

這道題想了很久都沒想出來什麼高效一點的方法,所以就在網上膜拜了大牛的思路。主要思想就是去掉點對之間的凸包,因為凸包一定是乙個三角形中包含乙個點,那我們就可以對於每個點判斷有多少個三角形能把它包含在內 判斷可以用逆向思維,就是所有三角形的個數減去有多少個三角形不能把它包含在內,然後通過極角排序來求出不...

hdu6242 計算幾何

題意 給你n個點,要求找到乙個點,和乙個圓心,使得有n 2向上取整個點在圓上,一定有滿足條件的點存在 題解 既然一定有解,而且圓上有n 2向上取整個點,那麼我們可以通過隨機來找三個點來確定乙個圓心,和半徑,可以看出這三個點在圓上的概率是很大的,注意要特判點數為1,2,3,4的情況 ps 一開始想的是...

hdu 3681 計算幾何

還是太粗心了阿,求直線上的點到兩點間距離和的最小值 搞了好久阿,a點和b點有可能在直線的同側也可能在異側 view code include include const double eps 1e 9 struct pointa,b,c,a1,node double dis point a,poin...