
poj
TIMELIMITE
Time is not enough. I must hurry up !
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj 1185 炮兵阵地 状压dp
// poj 1185 炮兵阵地 状压dp// 这题和之前做的棋子的差不多,只是这个比之前的变化了一个条// 件,这个条件让的我们不得不考虑在这个状态之前的状态,即在// 一个状态中记录另外一个状态,说的可能有些绕// 这么说吧: dp[i][S][V]表示第i行状态为S(仍然是二进制的数字// 表现形式,比如5是101,表示第一列和第三列放炮兵),第i-1行// 的状态为V(同样是二原创 2015-04-10 19:51:10 · 793 阅读 · 0 评论 -
poj 2187 凸包上的直径 - 旋转卡壳
// poj 2187 凸包上的直径 - 旋转卡壳//// 解题思路://// 裸地凸包 + 旋转卡壳的对踵点//// 感悟://// 对于凸包倒是很好理解,就是判断走的方向在当前方向的左侧或右侧,// 左侧表示是凸包上的点,右侧就退栈,直到是为止.//// 对于旋转卡壳,挑战上的转到法线方向不是很明白.倒是网上说的用的// 三角形的面积这种算法倒是更好理解一些~~~原创 2015-10-29 22:34:06 · 580 阅读 · 0 评论 -
poj 3667 Hotel 区间合并
// poj 3667 Hotel 区间合并//// 题目大意://// [1,N]区间内开始为空,有两种操作// 1) 1 a 找到长度为a的区间,并且尽量开头靠左,返回最左的位置// 并check in.// 2) 2 a b 将[a,b-1]区间check out.//// 解题思路://// 线段树-区间合并,对于每个节点记录三个值.// lsum表示该原创 2015-10-30 17:10:02 · 538 阅读 · 0 评论 -
poj 1182 食物链 - 并查集
// poj 1182 食物链-并查集//// 这题我重新看了一下,以前一直不已为意,觉得理解就差不多了// 现在发现,理解了,也不一定能够敲出来,哎,果然太久没做题了// 都生疏了,这道题,将每个生物分成3类,A,B,C.// 对于第一种操作,只要在合并之前检查一下是否合法,合法,则将// 该种生物的三类都合并// 对于第二种操作,同样,合并A与B,B与C,C与A//原创 2016-01-04 21:16:50 · 495 阅读 · 0 评论 -
poj 1741 Tree 点分治
// poj 1741 Tree 点分治// 题目链接:// http://poj.org/problem?id=1741// 题目大意:// 给定一棵N(1<=N<=10000)个结点的带权树,定义dist(u,v)为u,v两点间的最短路径长度,// 路径的长度定义为路径上所有边的权和。再给定一个K(1<=K<=1e9),如果对于不同的两个// 结点原创 2016-10-14 08:53:22 · 683 阅读 · 2 评论 -
poj 1273 Drainage Ditches 网络流 Edmond Karp || Dinic
// poj 1273 Drainage Ditches 网络流 Edmond Karp || Dinic// 题意: 裸的网络流,点数200,边数200// 解答:经典的ff算法由于效率受容量限制,对于此题,容量可能大于10000000,// 所以采用EK算法,EK的效率是n*m*m,对于此题,可以在时限内解答.// Ford-Fulkerson:由残余网络出发,每次寻找流原创 2017-05-28 15:08:23 · 480 阅读 · 0 评论 -
poj 3734 简单快速幂
// 开始想的是RGBY,4x4...结果发现进行不下去 // 原来是简单的计数就好,分类讨论 // A:同偶 // B:单偶 // C:无偶 // 那么从第i个格子,到第i+1个格子涂色的话 // A(i+1) 2 1 0 A(i) // B(i+1) = 2 2 2 x B(i) //...原创 2018-06-12 21:40:04 · 318 阅读 · 0 评论 -
poj 1769 dp + 线段树
// 哎没想到dp啊,后续状态基于当前状态,当前状态不会影响后续状态,dp dp dp // // dp[i][j] 第i个sort的时候 最大数在j所需要的最短sort数则 // // dp[i + 1][j] = dp[i][j] 当第i段sort[si,ti] 中 ti != j (即舍弃此sort) // dp[i + 1][j] = mi...原创 2018-06-13 20:06:46 · 296 阅读 · 0 评论 -
poj 2991 Crane 线段树 + 区间更新
// 做法: 线段树 + 区间更新 + 简单计算几何// 开始的时候在“挑战”这本书上看到,完全是懵逼状态,啥也不知道,就记一个向量旋转// 之后仔细想了想,旋转角统一转换成向量的形式,对某个s旋转angle角度,就是将s后// 所有的向量旋转angle角度。这样线段树区间更新的意义就出来了。所以线段树维护的// 就是每段的向量,即x,y坐标值,还有lazy标签,注意的是:题目输入的是...原创 2018-06-07 22:01:47 · 307 阅读 · 0 评论 -
poj 2104 简单归并树 + 二分
// 感悟: 做法如果看一下挑战,应该还是很简单的吧// 主要是刚开始看不习惯,线段树每一段表示一段序列// 刚好是归并排序的序列,然后二分计数。归并树build// 的时候多了个merge阶段,这段复杂度即为nlog(n),之// 后对数x进行二分查找log(n),目的是为了找出线段树// 中不小于x的数的数目,此阶段会对线段树log(n)个段// 进行每段二分log(n)。所以复...原创 2018-06-09 19:39:47 · 245 阅读 · 0 评论 -
poj 1127 Jack Straws 几何 + 弗洛伊德
// poj 1127 Jack Straws 几何 + 弗洛伊德//// 解题思路:// 两两之间,如果相连,则连一条边,最后用弗洛伊德求闭包.#include #include #include #include #include #include #include #include #define For(x,a,b,c) for (int x = a; x <原创 2015-10-28 20:25:43 · 592 阅读 · 0 评论 -
poj 3237 Tree 树链剖分
// poj 3237 Tree 树链剖分//// 解题思路:// // 树链剖分,维护一个最大值和一个最小值,// 区间更新,laz标记.单点更新,去掉叶子节点的laz// 标记.边权改为离根节点较远的点的点权.求lca// 的方式进行区间更新.注意线段树的操作以及push_up()// push_down()的操作.写了很久,感悟颇多,继续加油吧~~~#include原创 2015-09-19 23:58:03 · 496 阅读 · 0 评论 -
poj 2528 Mayor’s posters 线段树
// poj 2528 Mayor’s posters//// 题目大意:// 给你n张海报,每张海报是一段区间,问最后由几张还好能露出来//// 解题思路:// 线段树,别看那海报的区间范围很大,其实那些都没用.n才10000呢// 将区间离散化之后,然后在进行线段树的操作,但是注意在相差大于1// 的区间中间加上一个值,这样讲两个区间区分开,然后就是基本操作了// 挺好想原创 2015-11-03 21:16:22 · 549 阅读 · 0 评论 -
uva437 poj2241 The Tower of Babylon dp
// 这题开始在算法竞赛入门经典的书上状态表示// dp[i][j]表示前i个方块以第j条边为高所能得到的最大高度值// dp[i][j] = max(dp[0...i-1][0,1,2]+block[i][j]);// 就是一个DAG模型// 这样记忆化搜索就行啦,还是有些技巧的//// 第二种做法就是递推// 首先把一个方块变为6个,即表示长,宽,高// 当然,首先得要把底面积原创 2015-04-17 17:39:09 · 889 阅读 · 0 评论 -
poj 2559 Largest Rectangle in a Histogram 栈
// poj 2559 Largest Rectangle in a Histogram 栈// // n个矩形排在一块,不同的高度,让你求最大的矩形的面积(矩形紧挨在一起)//// 这道题用的是数据结构做,也可以递推做,目前只会数据结构的//// 对于每个高度h,求一个左边界L和右边界R,分别表示的意义是// L是下标为j的矩形的高度的hj小于当前h的最大的j的值。则根据定义/...原创 2015-06-05 22:53:39 · 795 阅读 · 0 评论 -
poj 2774 Long Long Message 后缀数组
// poj 2774 Long Long Message 后缀数组//// 题目大意:// // 求两个串的最长公共子串.//// 解题思路://// 后缀数组.将两个字符串用一个不出现在两个字符串的其他字符连接,并在最后// 同样用一个字符作为结束.一个串的子串,一定是某个后缀的前缀.求出height数组// height[i]表示sa[i-1]和sa[i]的公共前缀L原创 2015-08-10 15:39:43 · 710 阅读 · 0 评论 -
poj1861 最小生成树 prim & kruskal
// poj1861 最小生成树 prim//// 一个水题,为的只是回味一下prim模板,日后好有个照应不是 #include #include #include #include #include using namespace std;const int MAX_N = 1008;const int INF = 0x3f3f3f3f;int g[M原创 2015-07-29 21:13:46 · 762 阅读 · 0 评论 -
poj1125 Stockbroker Grapevine 最短路 dijkstral + 优先队列
// poj1125 Stockbroker Grapevine 最短路 dijkstral + 优先队列//// 一个模板吧,留着纪念#include #include #include #include #include using namespace std;typedef pair P;const int MAX_N = 108;const i原创 2015-07-31 13:03:50 · 757 阅读 · 0 评论 -
poj1511 最短路 spfa
// poj1511 最短路 spfa//// Bellman-Ford 队列优化//// 留个spfa模板,精髓就是不断松弛,并将可能会影响// 结果的点,如果在队列中不用加,不在就加入。#include #include #include #include #include typedef long long ll;using name原创 2015-07-31 15:09:45 · 696 阅读 · 0 评论 -
poj 2823 单调队列
//单调队列求滑动窗口的最大值和最小值//题意是给一个n个数,在每k个数区间内//求最大值和最小值//单调队列:队列中的元素是单调的。//求最小值的时候:进队的时候将队尾部大于当前要进的元素全部出队//这样,队列的头部就是最小值//反之,求最大值也是一样#include #include #include #include using namespace std;co原创 2015-07-22 22:26:31 · 753 阅读 · 0 评论 -
poj 2763 Housewife Wind 边权的树链剖分
// poj 2763 Housewife Wind 边权的树链剖分// // 题目意思很清楚,关于边权的树链剖分,首先// 肯定是先把链剖分好啦,然后就是将边权转化// 成离根节点较远的点的权值即可.单点更新,// 区间求和,注意,莫要重复计算哟,这题还有需要// 研究的地方,继续加油吧~~~#include #include #include #include #defi原创 2015-09-08 17:33:39 · 610 阅读 · 0 评论 -
poj 2778 AC自动机 + 矩阵快速幂
// poj 2778 AC自动机 + 矩阵快速幂//// 题目链接:// // http://poj.org/problem?id=2778//// 解题思路://// 建立AC自动机,确定状态之间的关系,构造出,走一步// 能到达的状态矩阵,然后进行n次乘法,就可以得到状态间// 走n步的方法数.// 精髓:// 1):这个ac自动机有一些特别,根节点是为空串,原创 2015-08-06 20:39:03 · 861 阅读 · 0 评论 -
poj 2686 状压DP
// 挑战上的状压例题,感觉思路挺清晰,但是很难想...// 不过学到了一个套路,那就是转换成DAG进行DP,很妙// 车票状态为第一维度,顶点为第二维度。// DP[S][u]表示在u点时,车票状态集合为S的最小花费。// 则状态转移为在u点找一张车票i,找一个点v.// DP[S \ i][v] = min(DP[S][u] + dist[u][v...原创 2018-06-10 23:42:37 · 253 阅读 · 0 评论