上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 20 下一页
摘要: 此问题与求上升序列最大和类似,可以作为DAG模型计算。将每一快砖分解为3块,将所有砖块按照底排序,注意sort排序中涉及到底的两个参数x,y,这时候一定要有优先排,比如先排x再排y,不能同时排x和y,下面排序写法是错误的: 阅读全文
posted @ 2016-08-18 12:43 曹孟德 阅读(154) 评论(0) 推荐(0)
摘要: 用dp[i][j]表示i时刻在车站j还需要等待的最小时间。很容易得到边界条件dp[T][n]=0,dp[T][1...n-1]=INF;我们要求的便是dp[0][1].考虑每次的三个决策: 1)等待1分钟 2)搭乘向右的车(如果有) 3)搭乘向左的车(如果有) dp[i][j]=max(dp[i+1 阅读全文
posted @ 2016-08-17 20:16 曹孟德 阅读(139) 评论(0) 推荐(0)
摘要: 利用叉积按照逆时针方向进行极角排序, 阅读全文
posted @ 2016-08-13 11:07 曹孟德 阅读(452) 评论(0) 推荐(0)
摘要: 参考博客http://www.cppblog.com/aswmtjdsj/archive/2011/09/04/155049.aspx 维护4根双扫描线,左右和上下。暴力枚举,复杂度O(n^2). 阅读全文
posted @ 2016-08-13 09:08 曹孟德 阅读(184) 评论(0) 推荐(0)
摘要: 一道状态压DP题目。将每一行进行编码,1表示种0表示不种。首先求解出每一行合法的状态集合。对于第i行状态j,如果j&(j<<1)==0并且对于该行为0的地方j在当前位的二进制也是0,则表明状态j合法。用dp[i][j]表示第i行状态为j时(j合法的)的方法数,得到状态转移方程如下: dp[i][j] 阅读全文
posted @ 2016-08-12 11:48 曹孟德 阅读(179) 评论(0) 推荐(0)
摘要: 首先线段树每一个节点包含:[b,e],lmax,rmax,max;其中lmax表示从左端点开始连续的最长的增序列长度,rmax表示从e端点开始向左连续的最长下降序列长度,max表示当前区间的连续递增的最长序列长度。对单个节点插入时的信息维护如下: (1) if 左儿子的右端点的值<右儿子的左端点的值 阅读全文
posted @ 2016-08-12 11:41 曹孟德 阅读(257) 评论(0) 推荐(0)
摘要: 1.http://acm.hdu.edu.cn/showproblem.php?pid=5112 2.http://acm.hdu.edu.cn/showproblem.php?pid=5122 一开始一看到以为求逆序来搞,一看题就写了个数状数组,nlogn超时了。当然一定是太性急了,这个题其实就是 阅读全文
posted @ 2016-08-10 17:14 曹孟德 阅读(149) 评论(0) 推荐(0)
摘要: 一.圆与圆的位置关系 1.两圆交的面积 两圆如果相交,则交的面积是一个弓形。考虑到两个圆相交的面积只与圆心距相关。我们可以对圆进行平移旋转,使得两个圆的圆心分别为(0,0)和(d,0). 模板如下: 2.两圆交点 两圆位置关系一共有5中。我们将其归纳为3种,0个交点,个交点,1个交点,2个交点.并且 阅读全文
posted @ 2016-08-10 11:20 曹孟德 阅读(273) 评论(0) 推荐(0)
摘要: 题目中给出的h和w范围均大,其实n的最大范围才200000,所以我们建立的线段树大小为min(h,n),线段树的每一个节点包含一个变量c,记录当前区间内还剩下的可以put on的最大长度。插入一个数时,如果该数大于该区间最大值,则返回-1,说明put on不了。否则将它插入到页节点,并返回插入的下标 阅读全文
posted @ 2016-08-07 23:47 曹孟德 阅读(180) 评论(0) 推荐(0)
摘要: 一.射线判别法:适用于所有简单多边形 简单多边形是不相邻的边不相交的多边形。判定点p是否在多边形G内部,包括边界。对于任意多边形,可以采用射线法。对于给定的点向左做一条平行x轴的射线l,求出l与多边形G的交点个数,如果个数为奇数则点在多边形内,如果交点个数为偶数则点在多边形外。具体可以归纳如下: 1 阅读全文
posted @ 2016-08-07 23:01 曹孟德 阅读(1683) 评论(0) 推荐(0)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 20 下一页