摘要:
求next数组,(一般有两种,求循环节用的见代码)求出循环节的长度。 阅读全文
posted @ 2016-07-31 20:20
水郁
阅读(182)
评论(0)
推荐(0)
摘要:
题 字符串所有子串要不同。求修改最少多少个字符。 因为只能是26个字母,显然大于26的不可能有答案,其它情况ans+=u[i]-1;u[i]是字母出现的次数。 阅读全文
posted @ 2016-07-31 16:28
水郁
阅读(271)
评论(0)
推荐(0)
摘要:
题 给定三角形,求三个两两相切且与三角形的一条边相切的圆的半径。 二分一个半径,可以得出另外两个半径,需要推一推公式(太久了,我忘记了) 阅读全文
posted @ 2016-07-31 16:14
水郁
阅读(346)
评论(0)
推荐(0)
摘要:
题 利用叉积解方程 利用点斜式解方程 阅读全文
posted @ 2016-07-31 16:02
水郁
阅读(255)
评论(0)
推荐(0)
摘要:
题 给定字典,再询问。 字典与询问之间有一个空行。 cin.peek()是一个指针指向当前字符。 处理空行的技巧 阅读全文
posted @ 2016-07-31 14:48
水郁
阅读(302)
评论(0)
推荐(0)
摘要:
求矩形面积并,离散化加线段树。 扫描线法: 用平行x轴的直线扫,每次ans+=(下一个高度-当前高度)*当前覆盖的宽度。 另一种方法还是线段树,这里扫描线用的是平行y轴的直线,每次增加的面积是当前扫描的竖线所在的高度区间的最后一次的x与当前x的差值乘上区间的高度。所以每次增加的不一定是一个矩形,而 阅读全文
posted @ 2016-07-31 06:52
水郁
阅读(328)
评论(0)
推荐(0)
摘要:
离散化后,[1,10]=[1,3]+[6,10]就丢了[4,5]这一段了。 因为更新[3,6]时,它只更新到[3,3],[6,6]。 要么在相差大于1的两点间加入一个值,要么就让左右端点为l,r的线段树节点表示到x[l]到x[r+1]的区间。 这样tree[l,r]=tree[l,m]+tree[m 阅读全文
posted @ 2016-07-31 05:17
水郁
阅读(376)
评论(0)
推荐(0)
摘要:
当两个点距离小于直径时,由它们为弦确定的一个单位圆(虽然有两个圆,但是想一想知道只算一个就可以)来计算覆盖多少点。 阅读全文
posted @ 2016-07-31 04:23
水郁
阅读(605)
评论(0)
推荐(0)
摘要:
给定点集的最远两点的距离。 先用graham求凸包。旋(xuán)转(zhuàn)卡(qiǎ)壳(ké)求凸包直径。 ps:旋转卡壳算法的典型运用 http://blog.csdn.net/hanchengxi/article/details/8639476。 阅读全文
posted @ 2016-07-31 03:54
水郁
阅读(377)
评论(0)
推荐(0)
摘要:
两个木条装雨水能装多少。 两线段相交,且不遮盖的情况下才可能装到水。 求出交点,再取两线段的较高端点的较小值h,(h-交点的y)为三角形的高。 三角形的宽即为(h带入两条线段所在直线得到的横坐标的差值)。 三角形的面积即为雨水的量。 坑点:如果用G++提交,ans要加上eps才能过,c++提交则没问 阅读全文
posted @ 2016-07-31 00:23
水郁
阅读(419)
评论(0)
推荐(0)