牛客寒假演算法基礎集訓營5 A 炫酷雙截棍

2022-08-21 08:54:09 字數 1215 閱讀 4885

小希現在手裡有乙個連著的兩塊木條,長度分別為l

1'>l1,l

2'>l2,木條之間有乙個無摩擦的連線點,木條之間可以相互轉動,小希將其稱之為雙截棍。

現在小希把長為l

1'>l1的木條的一端放在原點(0,0),任意轉動這兩根木條,小希想知道,是否有可能通過一種轉動方式使得雙截棍的另一端到達指定點呢?

如果不能,請輸出所有能到達的點中離目標點最近的距離。

第一行輸入乙個兩個正整數l

1'>l1,l

2'>l2,表示木條長度。

第二行輸入乙個正整數t,表示詢問次數。

隨後t行,每行兩個實數x

i'>xi,y

i'>yi表示目標點的座標。l1

,l2≤

1000

'>l1,l2≤1000l1,l2≤1000t≤

1000

'>t≤1000t≤1000|x

|,|y

|≤10000

'>|x|,|y|≤10000|x|,|y|≤10000

對於每次詢問,如果可以到達,輸出0,如果無法到達,給出所有能到達的點中離目標點最近的距離。

你的答案將被認為是正確的,如果相對誤差不大於1e-6。

示例1

23 13

315 1

40 0

0 0

0.00000000

4.00000000

10.00000000

思路:已知起點為原點,終點座標也在測試樣例中給出,可以算出兩點之間的距離;就知道了三邊的距離;

如果這三邊可以構成三角形,就輸出0;若不能,輸出還差多少就可以構成三角形;

**如下:

#includeusing namespace std;

#define ll long long

int main()

; sort(aa,aa + 3);

if(aa[0] + aa[1] >= aa[2])

else

printf("%.08f\n",aa[2] - aa[1] - aa[0]);

}return 0;

}

牛客寒假演算法基礎集訓營5 J 炫酷數學

b n a,b的情況,其中n為2的冪次。當然,a 1,b 0 和 a 0,b 1 被認為是不同的二元組。對於這種問題一點都不懂。法1 打表找規律 3 m 法2 二進位制分析,每一位只有00,01,10 這3種情況 舉例 1 2 1 2 1 0001 2 0010 0011 3 除了那3種還有 11 ...

牛客寒假演算法基礎集訓營

首先看到這個題目資料範圍就可以知道這不是乙個可以暴力過的題。所以應該要推乙個結論。我們可以將這個同學的一來一回看成一組,那麼就可以理解為乙個來回中n可以減少n m 1 個人。那麼我們現在要讓所有人都進去,那就是看n m 1 的數量。但是有可能存在一些情況,就是說當你的倒數第二組中的回來的那趟使得n變...

2020牛客寒假演算法基礎集訓營5

因為只能在末尾增加和刪除,所以前面只能進行修改。進行模擬就可以,匹配兩個字串,如果字元不同,就進行修改,最後再加上長度差即可 include include include include using namespace std string s,s2 intmain void ans abs n ...