-----KMP
LIN452
(*╹▽╹*)
展开
-
BZOJ1527/POI 2005 Point
相似点集有一个性质,重心在点集中的位置是相同的,可以通过点集的重心判断现点集是否能还原成原点集. 如果两个点集的点数不同,肯定是不相似的.移动:直接根据重心的位置,确定现点集的移动方式,使得两个点集的重心重合.缩放:根据两个点集内的点到重心的最短距离确定缩放比例,注意如果最短距离是0要特判.旋转:根据每个点到重心的极角给两个点集内的点排序. 每个点记录两个参数:①到重心的距离,②排原创 2016-10-27 07:04:27 · 362 阅读 · 0 评论 -
BZOJ1537/POI2005 The Bus
假设dp[i][j]表示在(i,j)位置能够接到的最多乘客数量,我们会发现很多的状态是无效的,因此只要记录到达站点的状态.由于只能向北或向东走,只可能通过西南的站点到达(i,j),也就是所有满足a<=i&&b<=j的站点(a,b).这样就有两维状态,可以通过排序+区间求值的方法降维. 我们可以按照横坐标从小到大排序,维护纵坐标的区间最值,由于每次求的是前缀最值并且不断增大,可以用树状数组求解.#i原创 2016-10-27 07:18:18 · 497 阅读 · 0 评论