数据结构
文章平均质量分 73
Alex_Dong
这个作者很懒,什么都没留下…
展开
-
hdu 4007题解
hdu 4007解题报告 题意:被包含在正方形内(包括边界上)点数最多是多少 解析:先对所有的点根据x排序,再在x轴上枚举,每次的正方形x轴上的边界是x[i]~limx;在这基础上找出x在该范围上的所有的点的y值存到数组y[]上并且排序,然后再进行枚举刷新正方形上的最多点数ans值。 代码: #include #include #include #includ原创 2014-01-27 22:15:50 · 513 阅读 · 0 评论 -
hdu 3308线段树 区域合并
区域合并时需要考虑两点 1、pushup中区域合并时最左右递增长度(llen/rlen)等于整个区域长度(r - l)时需要重新计算父区域的最左右的递增长度 2、query中需要考虑区域合并接口处是否有可能产生ans值 #include #include #include #include using namespace std; const int maxn = 100050; s原创 2014-07-21 14:10:36 · 567 阅读 · 0 评论 -
hdu 1166线段树
线段树的一般模板,1.结构体数组tree来存储 2.线段树的构建函数buildTree 3.改变元素值函数update 4.查询区间内总和的函数query全部使用递归来实现 ######################################################################include #include #include #include us原创 2014-07-20 23:20:48 · 552 阅读 · 0 评论 -
hdu 3874
求一个序列中所有数字的和,其中数值相同的只能计算一次。 先储存所有的请求,然后按照它们的右边界排序,在查询的同时更新区间。这里其实有一点点DP的味道,在它进行某个查询之前,保证所有的重复数字(除去最后一个)都被删除光了,并且有不能影响其他查询,所以呢,只能从最近的那个操作进行计算。1次query即可 #include #include #include #include #includ原创 2014-07-22 19:26:07 · 668 阅读 · 0 评论 -
hdu 4107卡时线段树
核心思想就是节点上记录最大值和最小值,如果max=p时,只在节点改变add值,不用往子树遍历;否则就往子树进行递归。 #include #include #include #include #include #include using namespace std; const int maxn = 2e5+50; int N, P; struct node{ int l, r,原创 2014-07-25 11:06:45 · 593 阅读 · 0 评论 -
平行线判断函数+求平行线之间的距离
// 得到直线的tan斜率 double GetTanOfLine( LINE line ) { double x_dis = line.pt0.x - line.pt1.x; if ( x_dis == 0.0 ) return 10e9; return (line.pt0.y - line.pt1.y) / x_dis; } // 得到两条平行线之间的距离 dou原创 2015-03-25 14:11:26 · 6235 阅读 · 0 评论 -
批处理文件夹里的图片
bool GetPicDirSetInFolder(CString strFindPath, std::vector &vecPathSet) { WIN32_FIND_DATA wfd; HANDLE hf = FindFirstFileA(strFindPath, &wfd); if (INVALID_HANDLE_VALUE != hf) { vecPathSe原创 2015-03-25 22:53:15 · 839 阅读 · 0 评论