F
e
l
i
c
i
a
导航
C++博客
首页
新随笔
联系
聚合
管理
<
2024年11月
>
日
一
二
三
四
五
六
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
统计
随笔 - 149
文章 - 0
评论 - 315
引用 - 0
公告
访问量
定制我的博客魔方
Yodao提供
常用链接
我的随笔
我的评论
我参与的随笔
留言簿
(21)
给我留言
查看公开留言
查看私人留言
随笔分类
(145)
ACM/ICPC 纪事(13)
(rss)
Felicia 的标程(3)
(rss)
TopCoder SRM(5)
(rss)
动态规划(28)
(rss)
计算几何(52)
(rss)
图论(6)
(rss)
心情日记(33)
(rss)
杂题(5)
(rss)
随笔档案
(149)
2010年10月 (5)
2009年1月 (2)
2008年2月 (2)
2008年1月 (8)
2007年12月 (6)
2007年11月 (5)
2007年10月 (30)
2007年9月 (47)
2007年8月 (44)
相册
百度之星2007
女友Ader
校园风景
ACMers
barnabas
Codger
ecjtubaowp
Felicia's New Blog
Flyfox
Hailer
Liang
LittleKid
Nash635
Owen
Richardxx
[推荐]不可不看的超级牛的网站
updog
wywcgs
海狸鼠DLUT
农夫三拳
潘帕斯雄鹰
踏雪赤兔
巫山霏云
星丞
Pretty Girls
Ader
最新随笔
1. [导入]论函数调用约定(修订版)
2. [导入]CodeColorer的可视化插入代码
3. [导入]Gravatar头像被墙的解决方法
4. [导入]Win7下解决80端口被占用的办法
5. [导入]C# 泛型+扩展方法
6. <天龙八部Online>资源包Axp格式研究
7. 如何加载《天龙八部》Skeleton
8. 我已更换新的blog http://gccfeli.cn 此blog的文章已全部转移
9. 今天自己做果冻吃
10. 非常喜欢珞珈山水离版画面的一首诗
搜索
最新评论
1. re: [动态规划]pku1038
@Run&Run
里面的两处>?=是什么意思
--prister
2. re: USACO历年比赛题目列表,测试数据和解题报告下载[未登录]
已经打不开了
--lee
3. re: WF的T-shirt颜色选什么好呢?
我还是喜欢 gekius的t-shirt多些 gekius.com
--banyumalu
4. re: [动态规划]pku3375
求数据
--77
5. re: [动态规划]pku1141
你的这个代码提交WA了
--wwq
阅读排行榜
1. USACO历年比赛题目列表,测试数据和解题报告下载(27192)
2. [动态规划]pku 部分动态规划题目列表(6567)
3. [计算几何]两圆求交点(5822)
4. [动态规划]动态规划总结 by Amber(3948)
5. [计算几何]pku 部分计算几何题目列表(3183)
评论排行榜
1. 友情链接邀请(42)
2. USACO历年比赛题目列表,测试数据和解题报告下载(38)
3. 2007南京赛区总结 by mmd(19)
4. [动态规划]pku2411(12)
5. [计算几何]pku 部分计算几何题目列表(12)
计算几何
[计算几何]pku1444 长方体旋转
摘要: 用递归旋转法解决长方体表面点的最近表面距离
阅读全文
posted @
2008-01-23 21:07
Felicia 阅读(1343) |
评论 (2)
编辑
[计算几何]pku3293
摘要: 先按规则连。规则是隔一段连一个。比如一条直线上有6个点,就1-2,3-4,5-6,这么连。如果只有奇数个点,就不行。然后再判有没有洞。
方法是任选一个点,走一圈,看看是否遍历所有的点。
阅读全文
posted @
2007-10-22 14:06
Felicia 阅读(591) |
评论 (1)
编辑
[计算几何]pku3429
摘要: 直接按照题目意思模拟即可。关键是需要实现有理数运算。我的方法是重载运算符。
阅读全文
posted @
2007-10-22 13:50
Felicia 阅读(590) |
评论 (3)
编辑
[计算几何]pku3424
摘要: 先确定窗口左上角可能出现的区域,方法是对每个点确定这样一个区域,然后求交。接下来枚举窗口左上角,计算密码序列,插入一个set中。最后按字典序输出这个set。
阅读全文
posted @
2007-10-22 13:48
Felicia 阅读(411) |
评论 (0)
编辑
[计算几何]pku1379
摘要: 平面点的三角剖分应用。对输入点集进行三角剖分,求得对偶图Voronoi图,Voronoi图的结点以及边与矩形的边的交点就是可疑点。枚举可疑点,计算最优值就是答案。
阅读全文
posted @
2007-10-10 09:31
Felicia 阅读(1324) |
评论 (4)
编辑
[计算几何]两个凸多边形的交
摘要: 两个凸多边形的交
阅读全文
posted @
2007-10-07 10:27
Felicia 阅读(1713) |
评论 (2)
编辑
[计算几何]pku3407
摘要: 简单的几何题,先把经纬度换算成球面坐标,再把球面坐标换算成直角坐标,然后求夹角,乘半径得到球面距离
阅读全文
posted @
2007-10-02 17:55
Felicia 阅读(614) |
评论 (1)
编辑
[计算几何]pku3410
摘要: 我的做法是,枚举第一个多边形的第i条边和第二个多边形的第j条边重合,然后从这条重合的边开始,尽可能的向后扩展重合边,然后判断剩下的多边形是否是凸多边形。
比赛的时候,我在某个地方忘记对多边形点数求模,导致wa了很久,一直到比赛结束后才AC。以此为鉴!
阅读全文
posted @
2007-10-02 17:52
Felicia 阅读(610) |
评论 (0)
编辑
[计算几何]pku3391
摘要: 问题是求平面欧几里德最小生成树的第n - k小边。
平面欧几里德最小生成树是经典问题,可以做到O(nlogn)。具体做法是先对平面点进行三角剖分,时间复杂度是O(nlogn),三角剖分的边就是可能的在最小生成树的边。因为是平面图,所以有O(n)条边,在其上应用 Kruscal 算法即可。
阅读全文
posted @
2007-09-28 20:17
Felicia 阅读(777) |
评论 (0)
编辑
[计算几何]pku1673
摘要: 此问题可转化为求三角形垂心。我的做法是设垂心坐标为(x, y),然后利用垂直关系解方程。
阅读全文
posted @
2007-09-27 17:18
Felicia 阅读(652) |
评论 (1)
编辑
[计算几何]平面点的曼哈顿最小生成树
摘要: 平面点的曼哈顿最小生成树
阅读全文
posted @
2007-09-27 14:48
Felicia 阅读(1261) |
评论 (0)
编辑
[计算几何]pku1624
摘要: 简单计算几何,我的做法是列出所有可能的切法(一共18种),求最优值。
阅读全文
posted @
2007-09-26 20:46
Felicia 阅读(572) |
评论 (1)
编辑
[计算几何]pku1408
摘要: 构造所有的线段,然后枚举每对水平-竖直线段,求交点,然后计算四边形面积,求最大值。
阅读全文
posted @
2007-09-25 21:59
Felicia 阅读(621) |
评论 (0)
编辑
[计算几何]pku3384
摘要: 强烈推荐此题。半平面交算法的一个应用。
具体做法是,把多边形的每条边向内平移r单位长度,用这些线段所在直线和原多边形作半平面交,得到的区域就是半径为r的圆放入多边形的可行域。可以证明这个区域一定是凸的,或者退化为一条线段,或一个点。那么,我们就可以在这个区域上求最远点对啦。
我的做法是O(n^2)的。应该存在O(nlogn)的做法,因为都是凸多边形,每次半平面交只有最多两个交点,可二分,而最后的求最远点对可以旋转卡壳。比赛的时候时间少,就写了个暴力O(n^2)的。
阅读全文
posted @
2007-09-23 16:19
Felicia 阅读(786) |
评论 (0)
编辑
[计算几何]pku1410
摘要: 基本几何题,判断线段是否与矩形相交。转化为线段在矩形内或线段与四条边相交。
唯一要注意的是题目中关于左上角和右下角的定义。
阅读全文
posted @
2007-09-22 10:58
Felicia 阅读(527) |
评论 (0)
编辑
[计算几何]pku1319
摘要: 这个题需要分情况讨论。如果是grid,就能直接算,如果是skew,就一层层往上模拟着堆。最后取最大值。
阅读全文
posted @
2007-09-21 21:56
Felicia 阅读(436) |
评论 (2)
编辑
[计算几何]两圆求交点
摘要: mmd 和 cz 的智慧结晶。某次比赛的时候写的。
阅读全文
posted @
2007-09-20 18:34
Felicia 阅读(5822) |
评论 (7)
编辑
[计算几何]pku1586
摘要: 超级恶心的精度题。注意读清题意,然后直接做就行了。
阅读全文
posted @
2007-09-19 17:47
Felicia 阅读(448) |
评论 (0)
编辑
[计算几何]pku2954
摘要: Pick公式的应用。先介绍一下Pick公式:
a = e / 2 + i - 1
a为多边形(顶点都在格点上)面积,e为多边形边上的格点数,i为多边形内部的格点数。
题目给出三点坐标,边上的格点数可用gcd求得,剩下的事就是解方程了。
阅读全文
posted @
2007-09-18 21:59
Felicia 阅读(434) |
评论 (0)
编辑
[计算几何]pku1569
摘要: 枚举三角形,然后判断是否其余的点都不在形内,也不在边上。时间复杂度是O(n^4)。
阅读全文
posted @
2007-09-16 21:19
Felicia 阅读(359) |
评论 (0)
编辑
[计算几何]pku3129
摘要: 很简单的几何题。直接硬搞即可。
阅读全文
posted @
2007-09-15 20:25
Felicia 阅读(383) |
评论 (0)
编辑
[计算几何]pku一些关于多边形的题目
摘要: 见内
阅读全文
posted @
2007-09-14 22:21
Felicia 阅读(534) |
评论 (0)
编辑
[计算几何]pku3130
摘要: 又是一个求多边形的核的题。
阅读全文
posted @
2007-09-14 22:18
Felicia 阅读(483) |
评论 (0)
编辑
[计算几何]pku2079
摘要: 先求凸包,然后再用旋转卡壳方法求解。
具体做法是枚举三角形的第一个点i,设j = i + 1,k = j + 1。然后做以下操作:
1.计算i,j,k构成的三角形面积a1和i,j,k + 1构成的三角形面积a2,如果a2 < a1,则进行下一步,否则k++,重复此步。
2.记录此时的三角形面积b,如果b < preb(就是上一个j对应的三角形面积)j++,转第一步,否则退出。
可以证明这个算法的复杂度为O(n2)。具体实现见代码。
阅读全文
posted @
2007-09-13 13:40
Felicia 阅读(852) |
评论 (0)
编辑
[计算几何]pku1494
摘要: 其实是初等几何题。在纸上画一下就出来了。
阅读全文
posted @
2007-09-10 20:48
Felicia 阅读(419) |
评论 (0)
编辑
[计算几何]pku1473
摘要: 很简单的题。直接按照题意模拟即可。
阅读全文
posted @
2007-09-10 16:58
Felicia 阅读(366) |
评论 (0)
编辑
[计算几何]pku1039
摘要: 具体算法在《算法艺术与信息学竞赛》里有讲。
阅读全文
posted @
2007-09-09 22:01
Felicia 阅读(765) |
评论 (0)
编辑
[计算几何]pku1133
摘要: 这个题目我用的是枚举。具体做法是,对于每个星座,把它的第1个点放在星图的第i个点上,第2个点放在星图的第j个点上(i != j),保持形状不变,移动这个星座中的其他点,看看这些点是否都和星图中的点重合。若满足条件,则找到一个匹配。如此得到星座c对星图的匹配数a。再得到星座c对它本身的匹配数b。那么星座c的出现次数就是 a / b。对于只有一个星星的星座,要特殊考虑一下。至于找出最亮星座,方法很简单:每次记录亮度值,发现更亮的就更新解。
p.s. 我一开始是用STL的complex做的,超时。后来改成向量做了。
阅读全文
posted @
2007-09-08 22:42
Felicia 阅读(516) |
评论 (1)
编辑
[计算几何]pku1092
摘要: 题目要求统计一个平面图中所有边数为k的面的个数。应该是个经典问题。说说我的算法吧。
枚举每条边,做以下的基本步骤。
基本步骤:以这条边作起始边,不断地找下一条“最左转”的边,并且标记每个点的访问次数,直到某个点第3次被访问为止。
经过这个步骤之后,得到一个顶点序列。容易知道,当且仅当这个顶点序列是2-重复(就是形如12341234这样),并且是逆时针旋转的,那么就是一个面。
接下去我们就把所有找到的边数为k面进行hash去重,就得到答案啦。
貌似我想的这个算法不够好,如果有更好的算法,欢迎和我讨论。
阅读全文
posted @
2007-09-07 19:37
Felicia 阅读(649) |
评论 (0)
编辑
[计算几何]pku1471
摘要: 这题勉强算几何吧。我写了个超级慢的枚举。
阅读全文
posted @
2007-09-06 20:02
Felicia 阅读(418) |
评论 (0)
编辑
[计算几何]pku1434
摘要: 简单几何题,但是容易WA。做法是二分水面高度,然后看看这个高度对应多少水。
阅读全文
posted @
2007-09-05 21:30
Felicia 阅读(312) |
评论 (0)
编辑
[计算几何]pku1389
摘要: 题目给出 n 个矩形,要求它们的面积并。具体做法是离散化。先把 2n 个 x 坐标排序去重,然后再把所有水平线段(要记录是矩形上边还是下边)按 y 坐标排序。最后对于每一小段区间 (x[i], x[i + 1]) 扫描所有的水平线段,求出这些水平线段在小区间内覆盖的面积。总的时间复杂度是 O(n^2)。利用线段树,可以优化到 O(nlogn)。
阅读全文
posted @
2007-08-25 17:53
Felicia 阅读(435) |
评论 (0)
编辑
[计算几何]pku1279
摘要: 求多边形的核。用半平面交算法。
阅读全文
posted @
2007-08-25 15:56
Felicia 阅读(654) |
评论 (4)
编辑
[计算几何]pku1418
摘要: 强烈推荐此题!
先考察一下这个问题的性质。
性质1:任何一个圆都覆盖了一个闭区域。
性质2:对于任意一个点,覆盖它的最上面的那个圆,一定是可见的。
性质3:如果一个圆不可见(它被完全覆盖),那么它的边界是被完全覆盖的。
性质4:n个圆最多有2(n-1)^2个交点,这些交点把n个圆分成最多2(n-1)^2条小圆弧。
性质5:对于每个小圆弧,要么它全被覆盖,要么它全不被覆盖。
根据性质1和性质2,问题转化为恰当地找出一些点,对于每个点,把覆盖它的最上面的圆标记为可见。
根据性质3,这些点一定在所有圆的边界集合内。
根据性质5,所有小圆弧构成边界集合。每个小圆弧上只要任意取一个点就能代表整个小圆弧(边界)。不妨取中点。
至此得到算法:取所有小圆弧的中点,对每个点找到覆盖它的最上面的圆。
根据性质4,最多取2(n-1)^2个点。对每个点找到覆盖它的最上面的圆,需要O(n)次运算。总复杂度是O(n^3)。
阅读全文
posted @
2007-08-24 22:43
Felicia 阅读(526) |
评论 (2)
编辑
[计算几何]pku1269
摘要: 很好的基础题,判断直线相交的情况。要注意精度。判断平行和重合时,用整数运算比较精确。剩下的事就是解出交点了。
阅读全文
posted @
2007-08-21 22:30
Felicia 阅读(447) |
评论 (0)
编辑
[计算几何]pku1118
摘要: 朴素做法是 O(n^3) 的,超时。我的做法是枚举每个点,然后求其它点和它连线的斜率,再排序。这样就得到经过该点的直线最多能经过几个点。求个最大值就行了。复杂度是 O(n^2logn) 的。把排序换成 hash,可以优化到 O(n^2)。
阅读全文
posted @
2007-08-21 20:37
Felicia 阅读(462) |
评论 (1)
编辑
[计算几何]pku2284
摘要: 应用平面图的欧拉定理:V + F - E = 2
两两线段求交,得到交点数 V,然后判断每个交点落在几条边上,如果一个点在一条边上,这条边就分裂成两条边,边数加 1。这样得到边数 E。最后直接用欧拉定理解得 F。
阅读全文
posted @
2007-08-21 17:26
Felicia 阅读(345) |
评论 (0)
编辑
[计算几何]pku1151
摘要: 题目给出 n 个矩形,要求它们的面积并。具体做法是离散化。先把 2n 个 x 坐标排序去重,然后再把所有水平线段(要记录是矩形上边还是下边)按 y 坐标排序。最后对于每一小段区间 (x[i], x[i + 1]) 扫描所有的水平线段,求出这些水平线段在小区间内覆盖的面积。总的时间复杂度是 O(n^2)。利用线段树,可以优化到 O(nlogn)。
阅读全文
posted @
2007-08-21 16:39
Felicia 阅读(543) |
评论 (1)
编辑
[计算几何]pku1113
摘要: 先求凸包,答案是凸包周长 + 2πl。因为简单多边形的转角是360度,所以加上一个圆的周长。
阅读全文
posted @
2007-08-21 15:43
Felicia 阅读(484) |
评论 (0)
编辑
[计算几何]pku1106
摘要: 简单题,直接模拟即可
阅读全文
posted @
2007-08-21 14:35
Felicia 阅读(322) |
评论 (0)
编辑
[计算几何]pku 部分计算几何题目列表
摘要: pku 部分计算几何题目列表
阅读全文
posted @
2007-08-19 16:14
Felicia 阅读(3183) |
评论 (12)
编辑
[计算几何]pku3347
摘要: 先把矩形扩大 sqrt(2) 倍,转化为整点问题。然后逐个求出每个矩形的坐标。
对于每个矩形分别求出在它之上的矩形覆盖的区间大小 t1,和包括它本身以及在它之上的矩形覆盖的区间大小 t2
若 t1 == t2,则该矩形被遮盖。
阅读全文
posted @
2007-08-15 21:37
Felicia 阅读(391) |
评论 (0)
编辑
[计算几何]pku3334
摘要: 二分水面高度,然后求总水量(就是求多边形面积)
阅读全文
posted @
2007-08-15 08:59
Felicia 阅读(451) |
评论 (1)
编辑
[计算几何]pku3335
摘要: 求多边形的核
阅读全文
posted @
2007-08-14 19:29
Felicia 阅读(493) |
评论 (0)
编辑
[计算几何]pku1696
摘要: 先按题意找出最低点作为起始点,计算出起始向量。然后每次选择左转角度最小的点走。一定能走完 n 个点。
阅读全文
posted @
2007-08-13 20:46
Felicia 阅读(489) |
评论 (0)
编辑
[计算几何]pku1687
摘要: 题目要求从几个区域中,求出包含其它区域的那个区域。其实就是求最大区域。
只要对每个区域依次计算面积即可,然后取最大的那个。
阅读全文
posted @
2007-08-13 19:07
Felicia 阅读(414) |
评论 (0)
编辑
凸包(类实现)
摘要: 凸包(类实现)
阅读全文
posted @
2007-08-13 14:49
Felicia 阅读(833) |
评论 (0)
编辑
[计算几何]pku1654
摘要: 记录当前点和前一个点的坐标,算叉积,然后加入总面积之中
注意最后得到的面积有可能是负的,要取绝对值,还有答案有可能超过 int 范围,要用 long long
阅读全文
posted @
2007-08-13 13:42
Felicia 阅读(675) |
评论 (0)
编辑
[计算几何]pku1556
摘要: 如果两点的连线不和墙相交,那么在图中为这两点连一条边,权值为这两点的距离
然后做 Dijkstra
阅读全文
posted @
2007-08-13 10:34
Felicia 阅读(474) |
评论 (0)
编辑
[计算几何]pku1375
摘要: 对每个圆作切线,求出投影区间,最后全部求并
阅读全文
posted @
2007-08-12 18:35
Felicia 阅读(357) |
评论 (0)
编辑
[计算几何]pku1031
摘要: 对多边形的每个边计算和原点的夹角范围,求并得到总夹角范围 alpha
答案就是 min(alpha, 2 * pi) * k * h
阅读全文
posted @
2007-08-12 12:06
Felicia 阅读(884) |
评论 (2)
编辑
[计算几何]pku1873
摘要: 暴力枚举砍掉的树,然后对剩余的树求凸包
阅读全文
posted @
2007-08-12 11:52
Felicia 阅读(465) |
评论 (0)
编辑