Google codejam 2010 Round 2 :: Grazing Google Goats

来源:互联网 发布:淘宝个人退款率怎么看 编辑:程序博客网 时间:2024/05/21 14:57

考试的时候只写了处理两个圆的,最后一刻写完的,交上去WA了。。后来才知道,要用long double

 

看了Google的题解,发现其方法确实很不错。Google提出了两种方法,都是O(n logn)的:

  1、通过inversion变换,转化成半平面求交的问题。inversion变换我以前确实没听说过,开了眼界了。。

  2、由于所有圆过公共点,把圆心按极角排序后,用一个栈维护以Q为原点的极坐标系中,在某个极角区间内最近的圆是哪个。

 

我实现了方法2,程序并不长,但写的时候感到有些纠结,幸好一次AC,要不还没法调……

 

 

顺便说一下比赛经过:

  最开始把第一题理解错了,想了半天觉得不可做,然后把第二题写了,把第三题小点裸了,这时候还有一个多小时。。 想了很久第四题,觉得一个小时肯定实现不了,仔细一看,小点只有两个圆。。 很高兴,但写的时候纠结了…… 最后不到5分钟时写完,过了样例,还没交,先看了下排名,大概四百八九。。 然后我想赌一把,结果不幸WA掉了,排名瞬间跌至506。。 然后不敢动了,过了几秒比赛结束,刷新一下,最后排名460,幸亏前面有人WA了大点……

 

原创粉丝点击