首页 > 代码库 > 第十五届北京师范大学程序设计竞赛现场决赛题解

第十五届北京师范大学程序设计竞赛现场决赛题解

技术分享

技术分享

C. Captcha Cracker
题目大意:给一个字符串,识别出0,2,4,6,9以及英文单词并
按照出现顺序输出。
通过人数/提交人数:60/62
题目解法:直接模拟。

技术分享

技术分享

F. Find Quailty
题目大意:给一个凸多边形,求出从不在多边形内一点??出
发走不超过??距离且不进入多边形内部所能到的区域面积。
通过人数/提交人数:0/3
题目解法:圆面积减去圆和凸多边形交的面积是显然不对的。

如果??不在边界上,过??作两条凸包的切线,那么区域被分为
两部分,其中一部分如下图所示,只需要计算圆和简单多边
形的交,这是个经典的几何模板题。

技术分享

另一部分面积首先是个大扇形,然后沿着凸多边形的边界从
两侧爬到另一边会得到很多小扇形。

技术分享

??值足够大的时候会有一些扇形发生相交,需要减去相交部
分的面积

技术分享

由于从任意一侧爬过去的途中得到的若干小扇形是两两交为
空的,那么两侧小扇形各自并集的交集就是从两侧小扇形任
取两个的交集的并集,于是减去从两侧分别枚举一个小扇形
求交的结果,再减去两侧小扇形与大扇形求交的结果即可。
复杂度是O(n^2).

技术分享

技术分享

 

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享 

第十五届北京师范大学程序设计竞赛现场决赛题解