Gym 100753 C Cake 題解
2021-04-08 08:49 作者:昵稱不能為空voidf | 我要投稿
題目大意:你有一個質(zhì)量均勻分布的二維多邊形(不超過100個頂點)蛋糕,你想把它寄出去但是它太重了。郵便局只允許你寄這塊蛋糕總質(zhì)量介于區(qū)間[0.25,1)的一個比率。于是你想要切蛋糕,切蛋糕的方式如下描述:選擇一個介于閉區(qū)間[2,1000]內(nèi)的實數(shù)s,對于每兩條相鄰的邊,在s等分點間連線,然后切掉這條線和蛋糕的一個頂點構(gòu)成的三角形,如圖。

輸出在允許郵寄的前提下能留下蛋糕的最大面積。絕對誤差不能超過1e-4
拿到手上的時候沒多想直接寫了個二分,但是調(diào)的過程發(fā)現(xiàn)兩個問題:
第一就是它頂點不是逆時針順序給的,樣例3就不是,所以我得改改多邊形板子,加個逆時針排序。
實在不知道這里的lambda怎么改成C++98支持的形式,爬了
第二是這題它要求的是絕對精度。在寫二分的時候發(fā)現(xiàn)樣例3都過不去。那么我們不能用二分。
然后發(fā)現(xiàn)這題被切掉的小三角形在改變s的情況下都是相似的,所以被切掉面積會與成正比,那么我們只需要隨便指定一個s,然后把三角形總面積算一下,再把比例比一下就能出答案。
標(biāo)簽: