![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
poj
文章平均质量分 54
小鸡炖蘑菇_
stay hungry,stay foolish.
展开
-
用于求最近公共祖先(LCA)的 Tarjan算法–以POJ1986为例(转)
原文地址:https://comzyh.com/blog/archives/492/给定有向无环图(就是树,不一定有没有根),给定点U,V,找出点R,保证点R是U,V的公共祖先,且深度最深;或者理解为R离这两个点的距离之和最小.如何找出R呢?最一般的算法是DFS(DFS本是深度优先搜索,在这里姑且把深度优先遍历也叫做DFS,其实是一种不严谨的说法).先看一道赤裸裸的LCA:POJ 1330 Near转载 2016-10-30 21:11:27 · 837 阅读 · 1 评论 -
poj-2352 && HDU-1541 --Stars(树状数组)
DescriptionAstronomers often examine star maps where stars are represented by points on a plane and each star has Cartesian coordinates. Let the level of a star be an amount of the stars that are not h原创 2016-01-26 18:54:41 · 304 阅读 · 0 评论 -
poj-2993-Emag eht htiw Em Pleh && poj-2996-Help Me with the Game
poj-2993 poj-2996先说2996的题意: 给一张棋盘,按KQRBKNP的顺序输出棋子的位置 其中大写字母代表白棋,小写字母代表黑棋 有一点需要注意,左下角是(1, 1)点#include <iostream> #include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include原创 2016-03-28 21:08:18 · 303 阅读 · 0 评论 -
poj-2632-Crashing Robots
传送门大意:一个仓库里面有几个机器人,给你机器人的初始位置及方向,然后让机器人执行一些指令,输出指令执行结果 如: Robot i crashes into the wall, if robot i crashes into a wall. (A robot crashes into a wall if Xi = 0, Xi = A + 1, Yi = 0 or Yi = B + 1.) R原创 2016-03-28 14:54:54 · 344 阅读 · 0 评论 -
poj-3295-Tautology
传送门 大致题意: 输入由p、q、r、s、t、K、A、N、C、E共10个字母组成的逻辑表达式, 其中p、q、r、s、t是逻辑变量,其值为1(true)或0(false); K、A、N、C、E为逻辑运算符, K –> and: x && y A –> or: x || y N –> not : !x C –> implies : (!x)||y E –> equals :原创 2016-03-28 12:23:41 · 256 阅读 · 0 评论 -
poj-2586-Y2K Accounting Bug
传送门题意:有一个公司,每个月要么盈利s元,要么亏损d元。这个公司没五个月做一次统计,一个共做八次统计(即。1-5, 2-6, 3-7….),这八次统计都是亏损的。求这个公司这一年最多可以盈利多少钱运用位运算,暴力计算就行了#include <iostream> #include <cstdio>#include <cstdlib>#include <cstring>#include <ve原创 2016-03-28 10:44:29 · 307 阅读 · 0 评论 -
poj-2109-Power of Cryptography
传送门方法1 p直接开n次方#include <iostream> #include <cstdio>#include <cstdlib>#include <cstring>#include <vector>#include <cmath>#include <set>#include <string> #include <algorithm>#define N 1010#def原创 2016-03-28 09:44:36 · 279 阅读 · 0 评论 -
poj-2965-The Pilots Brothers' refrigerator(巧妙的位运算)
传送门这道题和poj1753 类似,都巧妙的运用了位运算#include <iostream> #include <cstdio>#include <cstdlib>#include <cstring>#include <vector>#include <set>#include <string> #define N 1000010#define ll long longusing原创 2016-03-28 08:18:42 · 349 阅读 · 0 评论 -
poj-1753-Flip Game
传送门 数据规模小,直接暴搜加位运算就行了#include <iostream> #include <cstdio>#include <cstdlib>#define N 1000010#define ll long longusing namespace std;int cs[] = {0x13, 0x27, 78, 140, 305, 626, 1252, 2248, 4880,原创 2016-03-27 16:47:34 · 284 阅读 · 0 评论 -
poj-2255-Tree Recovery
传送门题意:根据二叉树的前序遍历和中序遍历,求出它的后续遍历根据前序遍历的结果把中序遍历分区左子树,根和右子树,然后依次递归下去,直到叶子节点#include <iostream> #include <cstdio>#include <cstdlib>#include <cstring>#include <vector>#include <set>#define N 1000010#d原创 2016-03-27 14:14:50 · 349 阅读 · 0 评论 -
poj-1083-Moving Tables
传送门 题意:一层有400个房间,南北各有200个,要把一张桌子从一个房间移动到另一个房间,需要占用这两个房间之间的所有走廊,每次移动一个桌子所需要的时间是10分钟,给出需要移动的桌子的数据,要求计算出最少需要多少分钟才能把所有桌子移动完题很简单,但是一定要看题目里面的那个图。有一点需要注意,房间1和2前面是同一个走廊,所以从1移动到2只需要使用一个走廊,而房间2和3前面不是同一个走廊,因此从2移原创 2016-03-25 19:03:22 · 325 阅读 · 0 评论 -
poj-2739-Sum of Consecutive Prime Numbers
传送门 题意:把一个数分解成若干个连续的素数的和,有多少种情况 如 41可以分解成 2+3+5+7+11+13, 11+13+17和 41.先把所有的素数(1-10000)计算出来,放在一个vector内,然后计算前缀和 最后根据前缀和计算出所有的情况#include <iostream> #include <cstdio>#include <iomanip>#include <cst原创 2016-03-25 18:58:47 · 327 阅读 · 0 评论 -
poj-3299-Humidex
传送门 题意:给temperature, dewpoint, humidex之中的两个数,然后求出第三个数,并输出 公式如下 humidex = temperature + h h = (0.5555)× (e - 10.0) e = 6.11 × exp [5417.7530 × ((1/273.16) - (1/(dewpoint+273.16)))] exp(x) 是2.718原创 2016-03-25 18:44:08 · 361 阅读 · 0 评论 -
poj-1273-Drainage Ditches(最大流问题)
传送门经典的最大流问题,不明白的可以在网上找找相关博客看看 Edmonds Karp算法的模板题#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <queue>#define ll long long #define N 205#define MAX 111111111原创 2016-04-03 19:46:04 · 950 阅读 · 0 评论 -
poj-3041-Asteroids
传说中的匈牙利算法,= =! 第一次写,搞了半天才明白这个算法主要是构图:将每一行当成一个点,构成集合X, 每一列也当成一个点,构成集合Y;每一个障碍物的位置坐标将集合X与集合Y中的点连接起来,也就是将每一个障碍物作为连接节点的边。这样可以轻易的得出本题是一个最小点覆盖的问题 又有一个定理是 König定理:最小覆盖点数==最大匹配数 证明: 首先,我们要抓住二分图最大匹配后图的特原创 2016-04-01 16:35:11 · 267 阅读 · 0 评论 -
POJ 网络流题集(转)
从网上摘下来,方便自己找题做……..POJ 2449 Remmarguts’ Date(中等) http://acm.pku.edu.cn/JudgeOnline/problem?id=2449 题意:经典问题:K短路 解法:dijkstra+A*(rec),方法很多 相关:http://acm.pku.edu.cn/JudgeOnline/showcontest?contest_id=11转载 2016-05-01 16:39:40 · 591 阅读 · 0 评论 -
poj-1698-Alice's Chance
这道题主要难点是构图,想了半天也想不懂怎么构图,后来在网上找了一下别人的题解构图:把每个电影需要的星期数都拆开,变成一条线的权值设为1,这样每个星期中的某一天只能被一部电影占据,源点直接连接到电影,权值为需要的天数,之后将日期和汇点相连,比如有一部电影需要4周,就需要有4*7=28个点和汇点相连!把图画出来就直接用dinic算法就行了 Dinic算法的原理与构造#include <iostream原创 2016-05-02 09:21:31 · 767 阅读 · 0 评论 -
Hopcroft-Harp 算法
匈牙利算法原理 为了降低时间复杂度,可以在增广匹配集合M时,每次寻找多条增广路径。这样就可以进一步降低时间复杂度,可以证明,算法的时间复杂度可以到达O(sqrt(n)*m)。 基本算法 该算法主要是对匈牙利算法的优化,在寻找增广路径的时候同时寻找多条不相交的增广路径,形成极大增广路径集,然后对极大增广路径集进行增广。在寻找增广路径集的每个阶段,找到的增广路径集都具有相同的长度,且随着算法的进行转载 2016-10-29 17:02:00 · 982 阅读 · 0 评论 -
混合图的欧拉回路求解方法(转)
原文地址http://yzmduncan.iteye.com/blog/1149049基础知识 欧拉回路是图G中的一个回路,经过每条边有且仅一次,称该回路为欧拉回路。具有欧拉回路的图称为欧拉图,简称E图。 无向图中存在欧拉回路的条件:每个点的度数均为偶数。 有向图中存在欧拉回路的条件:每个点的入度=出度。 欧拉路径比欧拉回路要求少一点: 无向图中存在欧拉路径的条件:每个点的度数均为偶数或者转载 2016-10-29 13:16:05 · 1477 阅读 · 0 评论 -
poj-1222-EXTENDED LIGHTS OUT && poj-1681-Painter's Problem
gauss消元 这道题和poj-1830类似 只不过把5*6的二维矩阵看成一维的,每一个开关会影响它周围的灯的状态。#include <iostream> #include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <cmath>#include <algorithm>#define原创 2016-10-05 10:08:15 · 263 阅读 · 0 评论 -
poj-1830-开关问题
gauss消元如果矩阵无解,则直接输出Oh,it’s impossible~!! 如果矩阵有解,就求矩阵的秩#include <iostream> #include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <cmath>#include <algorithm>#define ll lo原创 2016-10-05 09:09:16 · 737 阅读 · 0 评论 -
poj-1041-John's trip(计算欧拉路)
计算欧拉路,如果欧拉路存在,就数组欧拉路上的边的编号;如果有多条欧拉路,输出字典序最小的那一条。而且题目保证了图的连通性图G,若存在一条路,经过G中每条边有且仅有一次,称这条路为欧拉路,如果存在一条回路经过G每条边有且仅有一次, 称这条回路为欧拉回路。具有欧拉回路的图成为欧拉图。 判断欧拉路是否存在的方法 有向图:图连通,有一个顶点出度大入度1,有一个顶点入度大出度1,其余都是出度=入度。原创 2016-10-27 21:43:18 · 641 阅读 · 1 评论 -
poj-2449-Remmarguts' Date(A*算法+Dijkstra)
题目就是求两点之间第k短路,但如何起点和终点相等的时候,k需要加1涉及到的算法是Dijkstra和A*寻路算法#include <iostream>#include <iomanip>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>#include <cmath>#include <queue>原创 2016-10-27 20:15:03 · 611 阅读 · 0 评论 -
poj-2115 C Looooops (单变元模线性方程)
题意:利用了 k位存储系统 的数据特性进行循环。例如int型是16位的,那么int能保存2^16个数据,即最大数为65535(本题默认为无符号),当循环使得i超过65535时,则i会返回0重新开始计数,如i=65534,当i+=3时,i=1,其实就是 i=(65534+3)%(2^16)=1。有了这些思想,设对于某组数据要循环x次结束,那么本题就很容易得到方程: x=[(B-A+2^k)%2^k]原创 2016-10-15 20:00:56 · 389 阅读 · 0 评论 -
poj-2186-Popular Cows (tarjan算法)
题意:有n只牛,牛之间存在一些关系,比如a认为b很受欢迎,b认为c很受欢迎,这样呢,a也会认为c很受欢迎,问根据给出的关系,有多少头牛被其他所有的牛都认为是受欢迎的?思路:求强连通分量缩点后反向建图 然后判断图中是否有且仅有一个点的入度为 0,是的话就输出这个店包含的牛的个数,否则就输出 0#include <iostream>#include <cstdio>#include <cstdli原创 2016-10-25 20:28:59 · 396 阅读 · 0 评论 -
poj-2942-Knights of the Round Tabler
题目大意: 有N个骑士,他们要开圆桌会议,也就是要坐成一个圈,相互憎恨的两个骑士是不能坐在相邻位置的,那样他们就会打起来。给出所有的憎恨关系。如果有人不可能开会,例如他可能憎恨所有人,就不能再去开会了。求这样人的个数。注意:1、所给出的憎恨关系一定是双向的,不存在单向憎恨关系。 2、由于是圆桌会议,则每个出席的骑士身边必定刚好有2个骑士。即每个骑士的座位两边都必定各有一个骑士。 3、一个骑原创 2016-10-23 19:46:59 · 323 阅读 · 0 评论 -
无向图双连通分量(poj-3352)
预备知识:图的相关知识 https://www.byvoid.com/blog/biconnect/ 题目的大致意思是:在一个连通图中,至少添加多少条边,使图中不存在桥Tarjin时借助并查集,由于桥(删除之后图就不连通的边)不属于任何双连通分量,所以在Tarjin时,把不是桥的边的u,v并在一起,表示u,v在同一个双连通分量里,进行缩点。 一个重要的结论: 若要使得任意一棵树,在增加若干条边原创 2016-10-23 15:32:14 · 634 阅读 · 0 评论 -
割点和桥
点连通度与边连通度 在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。一个图的点连通度的定义为,最小割点集合中的顶点数。 类似的,如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个点集为割边集合。一个图的边连通度的定义为,最小割边集合中的边数。双连通图、割点与桥 如果一个无向连通图的点连通原创 2016-10-21 21:45:41 · 656 阅读 · 0 评论 -
poj-2195-Going Home(最小费用最大流模板题)
传送门最小费用最大流模板题意: 有n个人和n个房子,让每个人都回到一个房子里面,使得所有人走的步数和最小 建图:源点0,汇点:2*n+1,从源点到汇点建立一个容量为1,费用为0 的一条边,从每个房子到汇点建立一个容量为1,费用为0 的一条边;每个人到每个房子建立一条容量为1,费用为两者距离的边。图建好之后就可以直接求最小费用最大流了#include <iostream>#include <原创 2016-05-21 19:30:21 · 831 阅读 · 0 评论 -
poj-1149-PIGS(最大流)
传送门这道题最麻烦的就是建图,详细的建图过程在 这里建完图就直接用dinic算法求最大流就行了#include <iostream> #include <cstdio>#include <cstring>#include <vector>#include <algorithm>#define N 1010const int INF = 0x3f3f3f3f;using namespac原创 2016-05-08 10:17:35 · 732 阅读 · 0 评论 -
poj-2112-Optimal Milking(最大流)
传送门题意:K个产奶机,C头奶牛,每个产奶机最多可供M头奶牛使用;并告诉了产奶机、奶牛之间的两两距离Dij(0<=i,j < K+c)。问题:如何安排使得在任何一头奶牛都有自己产奶机的条件下,奶牛到产奶机的最远距离最短?最短是多少?Dinic算法先floyd求得两两之间最小距离,然后二分寻找答案邻接链表的方法#include <iostream> #include <cstdio>#includ原创 2016-05-06 16:25:43 · 632 阅读 · 0 评论 -
POJ 1611 The Suspects
POJ 1611 The SuspectsDescription Severe acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiology, was recognized as a global threat in mid-March 2003. To minimize transmission to原创 2015-08-14 21:00:29 · 369 阅读 · 0 评论 -
poj-1961-Period
DescriptionFor each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we want to know whether the prefix is a periodic string. That is, for原创 2016-03-18 19:59:11 · 257 阅读 · 0 评论 -
poj-2406-Power Strings
DescriptionGiven two strings a and b we define a*b to be their concatenation. For example, if a = “abc” and b = “def” then a*b = “abcdef”. If we think of concatenation as multiplication, exponentiation原创 2016-03-17 10:26:40 · 412 阅读 · 0 评论 -
poj-1847-Tram(最短路问题)
传送门DescriptionTram network in Zagreb consists of a number of intersections and rails connecting some of them. In every intersection there is a switch pointing to the one of the rails going out of the i原创 2015-12-10 14:43:46 · 470 阅读 · 0 评论 -
poj 3984迷宫问题
poj 3984迷宫问题原创 2015-08-10 21:12:08 · 889 阅读 · 0 评论 -
POJ 2601 Simple calculations
传送门:http://poj.org/problem?id=2601Description There is a sequence of n+2 elements a0, a1, …, an+1(n <= 3000, -1000 <= ai <=1000). It is known that ai = (ai-1 + ai+1)/2 - ci for each i=1, 2, …, n. You原创 2015-08-20 15:42:58 · 446 阅读 · 0 评论 -
POJ 1061 青蛙的约会.
POJ 1061 青蛙的约会.Description 两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上原创 2015-08-20 14:41:54 · 372 阅读 · 0 评论 -
POJ 1088 滑雪
POJ 1088 滑雪Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 2原创 2015-08-17 19:06:43 · 450 阅读 · 0 评论 -
POJ 1988 Cube Stacking
POJ 1988 Cube StackingDescription Farmer John and Betsy are playing a game with N (1 <= N <= 30,000)identical cubes labeled 1 through N. They start with N stacks, each containing a single cube. Farme原创 2015-08-15 22:46:38 · 358 阅读 · 0 评论