acm_高效算法
lshacm
这个作者很懒,什么都没留下…
展开
-
bzoj1293 生日礼物
数轴上有k种颜色共n个点,求一个最短的区间,包含所有k中颜色的点。关键词:枚举区间终点、点的单调性(保证遍历时,每个点仅经过一次)原创 2014-12-30 20:22:51 · 344 阅读 · 0 评论 -
uvalive 3905 扫描线:求包含区间最多的点
关键词:扫描线、求包含区间做多的点 题意:已知流星进入矩形内,会被照相机拍到。已知流星初始位置和运动方向。已知矩形框的位置。求最多可以同时拍到多少颗流星?(到达边框不计入内)原创 2015-04-28 08:26:26 · 459 阅读 · 0 评论 -
UVALive 6184 One-Dimensional Cellular Automaton(矩阵加速)
题意:已知 S(i,t+1)=(A×S(i−1,t)+B×S(i,t)+C×S(i+1,t))modMS(i, t + 1) = (A × S(i − 1, t) + B × S(i, t) + C × S(i + 1, t)) mod M (1) 求序列a[0,1,2…n-1]经T次上述变换后的结果b[0,1,2…n-1]原创 2015-05-14 00:42:27 · 424 阅读 · 0 评论 -
点分治:统计长度不大于K的路径条数
树的路径统计 统计有多少条长度不大于k的路径 树的点分治:将路径分为经过重心和不经过重心的路径。原创 2015-04-24 13:07:11 · 1461 阅读 · 0 评论 -
CodeForces 293E Close Vertices(点分治+Two Point法+树状数组)
关键词:点分治;Two Point法;树状数组 题意:给一棵含边权的树,求边条数不大于L,而且边权和不大于W的路径总数 解法:点分治;Two Point法;树状数组 点分治划归为以下问题:已知以重心为端点的所有<边条数,边长度>路径,求任意两条路径之和满足条件的对数。原创 2015-06-05 12:41:08 · 514 阅读 · 0 评论 -
hdu4670 Cube number on a tree(点分治)
题意:每个顶点有一个权值,求权值乘积为立方数的路径个数。路径节点数可以为1。 解法:典型的树分治。 1.dfs求出通过中心的每个子树中路径长度集合,在已经遍历的子树中路径长度集合中找到每条路径的“补路径”个数,,即乘积为立方数的路径。累加起来即为结果 要点: 1.用a数组记录每个子树的路径长度集合 2.用map标记已遍历的子树路径长度及其个数原创 2015-06-05 08:41:35 · 408 阅读 · 0 评论 -
hdu4812 D Tree(点分治)
题意:求点权树上路径上点权积modp等于K的两端点字典序最小路径 解法: 1.id[u]:经过重心长度为x的另一端最小值 num[]和length[]:分别保存子树端点的端点值和长度。 遍历num和length数组,更新id数组 2.在id数组中查找”新路径的逆元*K”,用该路径两端点更新答案。原创 2015-06-06 00:44:31 · 312 阅读 · 0 评论 -
整体二分
hdu5412 题意:求区间第k小数,支持单点更新 1)将操作定义为3种:添加、删除、询问 2)对于所有操作二分答案m,如果添加/删除操作数y<=my<=m,则该操作会影响左区间内的答案,扔到左区间中;如果询问操作在当前区间的答案大于等于k,那么它的答案产生在左区间,扔到左区间中去,反之扔到右区间。原创 2015-10-08 17:48:42 · 249 阅读 · 0 评论 -
树链剖分
定义: 1.重边:记 Size(U ) 表示以 U 为根的子树的结点个数,令 V 为 U 的儿子中 Size 最大的一个,那么我们称边 (U ,V ) 为重边,其余边为轻边。 2.重链:全都由重边组成的链称为重链。轻链同理定义原创 2015-08-19 19:26:37 · 301 阅读 · 0 评论 -
uvalive 最大子矩阵
关键词:极端特征统计 题意:已知图由F和R字母组成,求仅由F组成的最大矩阵原创 2015-04-28 09:15:40 · 303 阅读 · 0 评论 -
矩阵加速线性递推公式
关键词:矩阵加速线性递推公式原创 2015-04-17 10:38:28 · 1762 阅读 · 0 评论 -
点分治:统计长度为K的路径条数
套用第一种点分治模板——先加后减法。 计算过程略微不同,得到deep数组后,计算和为K的路径对数 1.剔除d[i]+d[i]==K的情况 2.遍历一遍后,每种情况计算了两次,最后需要除2#include<stdio.h>原创 2015-04-24 16:21:24 · 1293 阅读 · 0 评论 -
poj1741 Tree
树的路径统计统计有多少条长度不大于k的路径树的点分治原创 2014-12-26 21:21:14 · 259 阅读 · 0 评论 -
poj2114 Boatherds
判断树上是否存在长度为k的路径关键词:点分治、等值特判、扫描法判断方法仍为扫描法,只不过相等的时候需要特判,否则会错过许多条k长路径#include#include#include#include#define maxn 20010#define lowbit(x) x&(-x)#define mem(a,b) memset(a,b,sizeof(a))#define l原创 2014-12-27 01:23:42 · 296 阅读 · 0 评论 -
hakerrank Almost sorted interval 单调队列
关键词:单调队列,区间统计 题意:统计数组中符合条件的区间个数,条件是:区间左侧数最小,右侧数最大原创 2015-04-22 21:24:15 · 330 阅读 · 0 评论 -
dp 斜率优化
关键词:dp,斜率优化 dp[i]=min/max{dp[j]+fun(i,j),1<=j< i},当i和j可分离时,用单调队列维护即可(维护前j个中的最小/大值);当i和j不可分离时,可使用斜率优化。原创 2015-04-23 00:23:46 · 318 阅读 · 0 评论 -
斜率优化题目(持续更新)
bzoj1597 关键词:排序+单调队列预处理、斜率优化bzoj3675 序列分割 关键词:滚动数组、斜率优化原创 2015-04-23 01:32:05 · 840 阅读 · 0 评论 -
uva1427 单调队列优化dp
每条东西走向路有(高兴值,时间)二维参量,要从最南边走到最北边,满足:1)每条道路仅走一次2)每行道路所经过的总时间不超过k,求最大高兴值的和3)不能从北向南走状态:f[i][j]:到达第i行第j个顶点(从左起)最大高兴值。最短/长路问题:状态常设为以某点为起点/终点的最优值求数组f。到达(i,j)可以从左、右、下三个方向。设辅助数组L[i][j]从左边到达(i,j)的最大高兴值,R[原创 2015-03-26 00:01:23 · 376 阅读 · 0 评论 -
URAL1791 Uncle Styopa and Buses 贪心
关键词:任务安排、贪心、时间单调性(起始/截止时间随任务排序单调变化)原创 2015-04-24 09:34:16 · 351 阅读 · 0 评论 -
tree专题
Mart Master II原创 2016-07-30 11:48:42 · 229 阅读 · 0 评论