上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页
代码风格:notonlysuccess。单点更新:最最基础的线段树,只更新叶子节点,然后把信息用PushUP(int r)这个函数更新上来。很基础的,notonlysuccess里面有的, 先学学它里面的吧。网站: http://www.notonlysuccess.com/index.php/segment-tree-complete/以下是notonlysuccess里没有的1. POJ 2828 Buy Tickets题意:插队问题.关键:如何将这些人插入队伍中去。类型:单点更新思路:人要逆着插入队伍, 最先插入的一个数据的位置明显是题目给定的位置,可以确定,然后插入的几个人的位置前面插 Read More
posted @ 2012-08-24 10:07 To be an ACMan Views(1569) Comments(0) Diggs(2)
转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309142308大致题意:按照顺时针或逆时针方向输入一个n边形的顶点坐标集,先判断这个n边形是否为凸包。再给定一个圆形(圆心坐标和半径),判断这个圆是否完全在n变形内部。解题思路:题意已经很直白了。。就是那个思路。。。注意输入完顶点集后,要封闭多边形,方便后面枚举边。封闭方法:定义点集数组Vectex[1~n]记录n个顶点,再令Vectex[0]=Vectex[n],Vectex[n+1]=Vectex[1]1、判断凸包:由于点集已经按某个时针方向有序,因此可以先定义一个方向系数dir Read More
posted @ 2012-08-20 19:31 To be an ACMan Views(536) Comments(0) Diggs(0)
题意:给你一些图形,输入点,判断各个图形的相交情况。分析: 输入输出比较麻烦,其它很水。注意点:1. 是正方形的话给你两个点是对角线的两端点,会求另外两点的坐标。已知 (x1, y1),(x3, y3) 求(x2, y2),(x4, y4);可以由方程组:x1 + x3 = x2 + x4;x1 - x3 = y2- y4 ;y1 + y3= y2 + y4;y3 - y1 = x2 - x4 ;解方程一下即可。2.多边形和矩形都是按顺序输入点的,也就是说按连边的顺序输入。3.输出的时候,如果相交要考虑多种情况。注意这里的输出:跟 1 个相交 with B跟 2 个相交 with B and Read More
posted @ 2012-08-20 13:57 To be an ACMan Views(603) Comments(0) Diggs(0)
昨天晚上开始想这题,一拿到题目,数据才30,果断想到枚举,而且有一点可以肯定:光线必然贴着其中的2个顶点,不贴顶点根本无法做;刚开始想得超复杂,枚举任意2个点组成的直线,然后跟所有边界线判断是否相交等等情况, 由于边想别敲,结果才我写得发现有漏洞,而且很难用语言改正,所以放弃了,不久就郁闷地睡觉去了,想想有没有好的方法。第二天起来,还是想这个问题,诶,想想有什么新方法。真心想不出来, 结果无聊去看了看汝的黑书,发现这题在黑书P359,我也是把前面的计算几何看完了才看到的。结果刚学了上一个模板就来做这题,先看了看黑书上的思路,诶,我快速打了一遍,直线和线段相交求交点 被我打成 两线段相交求交点, Read More
posted @ 2012-08-19 17:04 To be an ACMan Views(605) Comments(0) Diggs(0)
题目还行,可惜自己不争气。一开始就想到了所有情况:1. 两条线不相交,不能装水。2. 两条线重合 或 平行 不能装水。3. 其中一条线水平放置,不能装水。4. 如下图, 不能装水,同理两直线都向右斜时,也有这种情况4. 把3中的图稍微改动一下,就能装水了,如下图可见,先判断是不是1,2,3 这几种情况,如果不是,那么4,5这两种情况要再判断一下。我想,这次不能再看别人的解题报告, 要自己做才能学到许多,尽管自己的方法不是很好,以下思路纯自己构思,代码纯手写, 写得太乱, 太杂, 尽管做了一下午,每次都是测试了好几组数据才交, 还是16WA,但完全靠自己A了心情就是不一样,爽啊。通过这题我学会了 Read More
posted @ 2012-08-18 17:15 To be an ACMan Views(269) Comments(0) Diggs(0)
有了向量 我们就可以选取一个最外侧的点了利用向量 我们可以比较哪个点"更外侧"比如点K和点I 我们利用向量JK乘以向量JI得到一个数 这个数应该是负数 说明I比K更外侧两个向量的比较具有传递性所以我们可以像N个数里取最大的数一样取出最外侧的遍历所有点 每个点都和现有最外侧的点比较 得到新的最外侧的点至此两个问题都得以解决 我们可以写出满足一般要求的卷包裹算法了两个问题如下:1.怎么确定一个肯定在凸包上的点?这个问题很好解决 取一个最左边的也就是横坐标最小的点如果有多个这样的点 就取这些点里 纵坐标最小的这样可以很好的处理共线的情况2.如何确定下一个点(即最外侧的点)?我们需 Read More
posted @ 2012-08-17 20:38 To be an ACMan Views(991) Comments(0) Diggs(0)
无论点怎么分布,总有一条路径能使ant经过所有的点。方法1:第一次选坐标y值最小的坐标为起始点 也是当前停留点,然后 以当前点为参照,对之后的几个点按级角(斜率)从小到大排序,取极角最小的点,然后继续重复操作,直到所有点取完为止。View Code #include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>using namespace std;#define inf 1<<29struct point{ int num, x, y;}p[33];poi Read More
posted @ 2012-08-17 20:26 To be an ACMan Views(331) Comments(0) Diggs(0)
诶,题目太坑爹。注意点:1. 给出的矩形的两个点是随意的,可能是左上,右下 或 左下,右上。2. 如果线段在矩形里面算相交;3. 判断线段相交的模版必须完善 (考虑所有情况):共线,规范相交,非规范相交。View Code #include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>using namespace std;#define eps 10e-8struct point{ double x, y; point(){} point(double xx, dou Read More
posted @ 2012-08-17 18:00 To be an ACMan Views(223) Comments(0) Diggs(0)
本题关键:如何找到最少的路径。刚刚做的一题计算几何时建图的,做到这道题,第一个想法就是建图,找最短路, 后来细想操作太多太繁琐,不好做, 所以放弃了,觉得应该有简单的做法。 思考很关键:从外围四个墙的某一个门进来,走到宝藏,最小走几个门,实际就是进门点和宝藏的连线goalLine穿过几个点。证明不好证,但如果说明大体的思想其实挺简单的:思想有点像两点之间直线最短。不要去管纵横交错的小线段,只管一开始原始输入的线段,因为在正方形范围内,这些线段可以想象为无限长,进门的点和宝藏点中间横跨着k条直线(墙 ),你就无法绕过它们,只能穿过它们 ,你往左往右走都只会徒增加你要穿过的墙,就这最基本的k道墙你 Read More
posted @ 2012-08-17 13:29 To be an ACMan Views(197) Comments(0) Diggs(0)
有技巧的暴力过了View Code #include<stdio.h>#include<string.h>#include<math.h>#include<algorithm>using namespace std;#define eps 10e-8#define inf 1<<29struct point{ double x, y;};struct seg{ point a, b;}s[100002];bool vis[100003];int ans[100003];int n;double cross(point p0, poin Read More
posted @ 2012-08-16 21:57 To be an ACMan Views(165) Comments(0) Diggs(0)
上一页 1 ··· 6 7 8 9 10 11 12 13 14 ··· 18 下一页