小希現在手裡有乙個連著的兩塊木條,長度分別為l
1'>l1,l
2'>l2,木條之間有乙個無摩擦的連線點,木條之間可以相互轉動,小希將其稱之為雙截棍。
現在小希把長為l
1'>l1的木條的一端放在原點(0,0),任意轉動這兩根木條,小希想知道,是否有可能通過一種轉動方式使得雙截棍的另一端到達指定點呢?
如果不能,請輸出所有能到達的點中離目標點最近的距離。
第一行輸入乙個兩個正整數l1'>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,如果無法到達,給出所有能到達的點中離目標點最近的距離。示例1你的答案將被認為是正確的,如果相對誤差不大於1e-6。
23 13315 1
40 0
0 0
0.000000004.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 ...