• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
LyonLys
愿意在角落唱沙哑的歌 再大声也都是给你 请用心听 不要说话 Contact me via E-mail: lyon.lys@gmail.com
博客园    首页    新随笔    联系   管理    订阅  订阅
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 35 下一页
2013年5月28日
hdu 1154 Cutting a Polygon (Simple Geometry)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1154 简单的计算几何题。因为没有看清题意,把直线看成线段了,所以WA了几次。 做法相当简单,我们只需要把直线于多边形的交点都求出来,然后每相邻两个交点取其中点,判断中点是否在多边形内。如果中点在多边形内,则当前线段在多边形内。这是一个很常见的判断方法。代码(带模板)如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <set> 5 #include <vec 阅读全文
posted @ 2013-05-28 22:15 LyonLys 阅读(284) 评论(0) 推荐(0)
LightOJ 1378 The Falling Circle (Basic Geometry)
摘要: http://www.lightoj.com/volume_showproblem.php?problem=1378 简单的计算几何,不过做这题要看清楚题目要求,对于自由下落的部分是求直线距离即可,可是对于在斜面上的运动,速度是多少就必须留意了。卡了一个晚上,出了好几组数据,结果就只是卡在没有看清楚题意上面。早上用手机提交,通过!带有几何模板以及部分debug的代码: 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <set> 5 #include &l 阅读全文
posted @ 2013-05-28 09:11 LyonLys 阅读(342) 评论(0) 推荐(0)
2013年5月27日
hdu 2823 The widest road (Convex Hull)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2823 应该是经典的凸包间最短距离的题目吧。印象中是用旋转卡壳来过的,不过我在hdu水了一下,一个暴力O(n^2)算法直接撸过。 我的做法很简单,就是先判断两个凸包是否相交或包含,然后就用点到线段距离枚举凸包间距离,加了一个遇到距离增加的时候剪枝就过了。代码如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <vector> 5 #include <algor 阅读全文
posted @ 2013-05-27 15:36 LyonLys 阅读(299) 评论(0) 推荐(0)
hdu 1348 Wall (Convex Hull)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1348 简单二维凸包,直接套用andrew算法得到凸包后求周长,然后加上一个圆周即可。 做的过程中有一个小错误,就是之前已经cin >> n;了,做凸包的时候写成了int n = andrew(pt, n, ch); 从而导致segment fault。以后要注意避免这样的事再次发生。代码如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <vector> 阅读全文
posted @ 2013-05-27 14:25 LyonLys 阅读(141) 评论(0) 推荐(0)
2013年5月26日
hdu 1392 Surround the Trees (Convex Hull + Trick)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1392 模板题,套二维凸包,然后计算凸包周长。 唯一要注意的是两个点的时候,不用两点距离的两倍。代码如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <set> 5 #include <iostream> 6 #include <algorithm> 7 #include <vector> 8 9 using namespace 阅读全文
posted @ 2013-05-26 22:21 LyonLys 阅读(182) 评论(0) 推荐(0)
hdu 1007 Quoit Design (Nearest Point Pair)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=1007 最近点对。 做法是先对所有点先按x再按y排序,然后进行分治搜索最近点对。对于每个区间,如果点数小于3,就直接暴力搜索最近点,否则对其进行分治。分治出来的两个区间,我们要挑选出与中点距离小于已找到的最近距离的所有点,然后对他们进行暴力枚举最近距离。根据《算法导论》证明的,合并两个区间之后,被挑选出来的点不会超过6个,于是可以得到总的时间复杂度是O(nlogn)。代码如下: 1 #include 2 #include 3 #include 4 #include 5 #include 6 7... 阅读全文
posted @ 2013-05-26 21:02 LyonLys 阅读(177) 评论(0) 推荐(0)
hdu 2604 Queuing (Matrix)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2604 题意是找出长度为n的,不包含“fmf”或“fff”的字符串的个数。 这题我是直接套用之前的ac自动机的模板的,构造出自动机,然后利用矩阵快速幂求出结果。当然,这题可以直接推出递推公式,然后再套入矩阵中。复杂度O(m^2 log n),其中m是矩阵大小,n是要求计算的长度。代码如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 #include <iostream> 5 阅读全文
posted @ 2013-05-26 19:52 LyonLys 阅读(152) 评论(0) 推荐(0)
hdu 2966 In case of failure (KD-Tree)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2966 一道KD树的题。题意是,给出n个不重合的点,求出这n个点的最邻近点的距离的平方。 什么是KE树就不介绍了,网上有许多KD的资料,做这题前先阅读材料。我的方法参考的是http://blog.csdn.net/zhjchengfeng5/article/details/7855241这个博客的代码,划分的过程直接调用STL中的nth_element,从而减少代码量。 我的做法是直接用点集数组构建线性存储的一棵KD树,然后用类似于线段树操作对点集进行划分和查找。因为题目的特殊性,于是我们可以将查找的时... 阅读全文
posted @ 2013-05-26 08:41 LyonLys 阅读(1169) 评论(0) 推荐(0)
2013年5月25日
hdu 4562 守护雅典娜 (Simple Geometry + dp)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=4562 中文题。 这道题的做法是先筛选出那些能够起到分隔雅典娜和怪兽的圆,就是那些只包围雅典娜或者只包围怪兽的圆,这样就分离出两种圆。因为不能同时对这两种圆进行dp,所以我们可以分别dp出最优解之后再对两种圆的最优解进行合并。这种dp就像是LIS,我们需要先对圆的大小进行排序,保证的是大的圆围在小的圆外面,这样就可以避免判断当前圆是否跟那个圆集里任何一个圆相交。代码如下: 1 #include <cstdio> 2 #include <iostream> 3 #include < 阅读全文
posted @ 2013-05-25 21:17 LyonLys 阅读(364) 评论(0) 推荐(0)
hdu 2586 How far away ? (LCA)
摘要: http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意是给出一棵树,求两点之间的距离。 经典LCA的题,在hdu那里无意中看到的。做法是dfs出一个先根遍历的路径,然后对路径求RMQ,当然,也可以用线段树维护。之后就是对每个询问输出dis[u]+dis[v]-dis[lca(u,v)]*2的值即可。代码如下: 1 //#pragma comment(linker, "/STACK:102400000,102400000") 2 3 #include <cstdio> 4 #include <cstring> 阅读全文
posted @ 2013-05-25 21:06 LyonLys 阅读(156) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 35 下一页
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3