欢迎光临散文网 会员登陆 & 注册

Gym 100753 C Cake 题解

2021-04-08 08:49 作者:昵称不能为空voidf  | 我要投稿

题目大意:你有一个质量均匀分布的二维多边形(不超过100个顶点)蛋糕,你想把它寄出去但是它太重了。邮便局只允许你寄这块蛋糕总质量介于区间[0.25,1)的一个比率。于是你想要切蛋糕,切蛋糕的方式如下描述:选择一个介于闭区间[2,1000]内的实数s,对于每两条相邻的边,在s等分点间连线,然后切掉这条线和蛋糕的一个顶点构成的三角形,如图。

输出在允许邮寄的前提下能留下蛋糕的最大面积。绝对误差不能超过1e-4


拿到手上的时候没多想直接写了个二分,但是调的过程发现两个问题:

第一就是它顶点不是逆时针顺序给的,样例3就不是,所以我得改改多边形板子,加个逆时针排序。

实在不知道这里的lambda怎么改成C++98支持的形式,爬了

第二是这题它要求的是绝对精度。在写二分的时候发现样例3都过不去。那么我们不能用二分。

然后发现这题被切掉的小三角形在改变s的情况下都是相似的,所以被切掉面积会与%5Cfrac%7B1%7D%7Bs%5E2%7D成正比,那么我们只需要随便指定一个s,然后把三角形总面积算一下,再把比例比一下就能出答案。


Gym 100753 C Cake 题解的评论 (共 条)

分享到微博请遵守国家法律