08 2019 档案
摘要:题意: 多个输入样例,以字符串END结束。对于每个串输出其最长回文子串 思路: 对于回文串来说,我们可能一开始会想到 $O(n^2)$的 循环中心位置然后往左右两端匹配。 Manacher算法则可以将其直接降到 $O(n)$ ,运用的则是回文串本身对称性的原理。 由于任意一个字符串长度有奇偶,对于奇
阅读全文
摘要:" 原题链接 " 题意: 给你一个长为 N 的数字序列,其中序列中的值范围在$(1~100)$。你需要每次在序列中抽取一个数字(不能抽取两端),每次抽取一个数字的花费为:抽取的数字与其左右数字的乘积。 当你把牌抽到只剩下左右两端时,求出能得到的最小花费。 思路: 区间dp的思路即是:为了解在一个区间
阅读全文
摘要:题意: 求所给出长度为 N 的最长上升子序列长度 ""思路: (1) $O(n^2)$的 动态转移: 设$dp[i]$表示以$i$结尾的最长单调子序列,那么当$arr[i] arr[j]时$ $dp[i]=max(dp[j]+1,dp[i]) (j\in[1,i))$ (2) $O(n^2)$ $d
阅读全文
摘要:题意: 给出两个字符串,求出最长的公共子序列大小。 思路: 算是最经典的LCS问题吧。 设 $X=(x_1,x_2,.....x_n) 和 Y=(y_1,y_2,.....y_m)$ 是两个序列,将 X 和 Y 的最长公共子序列记为$lcs(X,Y)$ ,找出$lcs(X,Y)$就是一个最优问题 然
阅读全文
摘要:题意: 题意相当于:给你六种物品,每种物品对应有 $num[i] (i为物品编号)$个,同时第 $ith$ 物品价值为&i&,现在问你能否将这些物品分成两堆,使得每堆的价值相同 思路: 我们可以用dfs去暴力搜索,当然这里使用多重背包的想法。即有 N 个物品 对应每个物品都有对应的 体积,能否找到任
阅读全文
摘要:"原题链接" 题意: 给你两个数 $N,M$ 你要求出 符合条件 $GCD(X,N) =M,\space (1 include include include include include define IOS ios::sync_with_stdio(0); cin.tie(0); define
阅读全文
摘要:题意: 给你一个范围 $(1 define IOS ios::sync_with_stdio(0); cin.tie(0); define accept 0 define mp make_pair using namespace std; typedef long long ll; typedef
阅读全文
摘要:题意: 给出一个范围 $(l,r)$ , 要求计算该范围中 满足 其中连续两位不为62, 并且不包含4 的符合条件个数。 思路: 在用数位dp写之前发现自己以前用暴力的方法过去了....(就直接枚举然后除余 4 和 64)所以明明做过一道数位dp的题,却对数位dp毫无印象.. 关于数位dp:在数位上
阅读全文
摘要:题意: 即是给你一个容量M的包,有N件物品,每件物品有分别对应的 价值value 以及 重量weight .然后在不超过该背包容量的情况下能得到的最大价值为多少? 思路: 由于这是最基础的问题,所以就记录当对 01背包状态转移方程式的 理解。 对于动态规划来说,首先要知道我们要确定哪些状态量。然后再
阅读全文
摘要:原题链接: 题意: 给你一个长为 $N$的序列。你要将其分为 $M$ 段不重叠的连续区间 , 使得这些区间的总和最大。 思路: 我们先从状态来看。一般关于序列问题我们很容易想到 以第 $j$ 个数结尾的状态。然后再结合这道题的 $M$ 个不同区间,我们可以再设一个 区间个数为 $i$ 的状态。即最后
阅读全文
摘要:题意: 给你N个结点的树,每条边的权值,以及一个起点位置S。 你有两个robot ,可以同时在树上跑。每跑过一条边就要花费一条边权值的油费(要重复i计算)。现在你要把整棵树跑完,问至少要花费多少。 思路: 做这道题的时候想到了之前做过19牛客暑期训练赛的一道题,第四场A-meeting(签到题),两
阅读全文
摘要:题意: 给你 N 个点以及 N-1 条边将所有点两两连接(树),每个点都有对应编号。现在给你k个点,你要求出这个树上的某个点使得 所给两个点到该点的时间(经过的边数)其中最大的那个为 所能得到的所有答案的最小值。 思路: 如果仅仅是两个点,那么我们用dijkstra跑一下就可以得到。但是这是k点,切
阅读全文
摘要:原题连接 : 题意 :给一个 $N \times M$ 棋盘 对于任何一个棋盘中的由任意四点构成的矩形,如果 其中三角存在棋子 则第四个角会自动生成一个棋子 求铺满整个棋盘 我们至少要向棋盘里加多少枚棋子 思路 :说实话一开始很不容易去想如何去解决。存在两点,即到底所给出的棋子能最多推出哪些新的棋子
阅读全文
摘要:题意 :给你N个模式串( 只含 'A' , 'T' , 'G' , 'C' )以及一个文本串长度m,每个串的长度不会超过10,求出有多少个串满足不包含所有的模式串,并且长度为m. 结果 mod 100000 思路 :我们要使组成的串不包含模式串,如果从AC自动机的角度来想就是每一次都不能走到某个模式
阅读全文
摘要:原题链接:Jzzhu and Sequences 题意: 给你一个线性递推式 $f_i = f_{i 1}+f_{i+1} \Rightarrow f_{i+1} = f_i f_{i 1} \Rightarrow f_{i} = f_{i 1} f_{i 2}$ , $f_1= x\space ,
阅读全文
摘要:原题链接:CodeForces - 580D 题意:给你n种菜,吃每种菜都会得到对应的满足值。给出k种buff,如果先吃a再吃b 满足感就会提升c。最后你要吃共m种菜,能获得的最大满足值为多少。 思路:一开始会想到最短路之类的,相当于有向图。但是这是多源出发的最长路径(不会....),在看看题目范围
阅读全文
摘要:原题链接:HDU - 6386 题意: 给你n个站点,m条边连接。每一条边都有一个编号,顺着编号相同的一直走整条路上只花费为1。如果在中途换到不同编号的边,则花费会增加。 思路: 或许一开始会想到最短路,我们先建个图然后用dijkstra跑一下。建图的话我们可能想到dfs或者bfs去搜索,相同编号则
阅读全文
摘要:原题地址:HDU - 3065 题意:给出N个模式串(在ascii范围内(128)),再给你一个文本串 (2 e6 以内),输出存在的模式串以及出现次数 (计数可以重叠) 思路:AC自动机啦,我们要会用last优化后ac-atomaton
阅读全文
摘要:题目链接:HDU - 2896 题意:给你n个模式串,对应每个模式串由编号,给出m个文本串,然后你要输出对应所匹配出模式串序号,以及有多少个文本串中有模式串 思路:比起比较基本统计个数,这里我们可以用set或者map来统计模式串序号 这里总结一下新学习的last优化。 参考博客:(1) last相当
阅读全文
摘要:链接:HDU-2222 很久之前就准备学AC自动机了,今天就把最基础的搞定一下。 由于是最基础的AC自动机所以我先总结一下基础内容 ( qvq 最基础的AC自动机解决的是:多字符串匹配问题,我们知道kmp是优化 一对一的匹配。那么 N对一的匹配难道要用kmp跑 N次?答案是no. AC自动机全称:A
阅读全文
摘要:A. All-one Matrices 题意:求不能再增大的最大子矩阵个数 思路:单调栈问题。我们看下面一个简单的图就可以知道当第i列右边的高度高于i时,则i列的单元块会被包含在其中,而当高度小于时则不会被包含。 对于栈中每一个Up值,还需要维护一个其向左能拓展的最远位置Left 每当有元素退栈时,
阅读全文
摘要:G:Gemstones 题意:给出一个字符串s( length <= 1e5 ),每有三个相同的相连就会像 消消乐一样消除。问最多消除多少次 思路:实际上就是模拟栈,每有三个相连就退栈
阅读全文
摘要:题意:给你n个人(编号1~n),m个关系每对关系表示 a, b 互相认识,现在你要输出在给出关系之后,从所有人中选出4个互不认识的人的组合个数思路:对于关系处理我们肯定能够想到并查集。然后每次找到有多少对不同的人数,输出他们的组合数。我一开始是顺着想,统计所有集合数目,然后计算组合数把他们加起来,结
阅读全文
摘要:链接:D.Knapsack Cryptosystem题意:给你一个长为n的序列,以及一个数s你要从序列中选择一些数字,使他们的和为m(满足组合唯一)并最后以01串的格式输出(0表示没有取,1表示取)思路:一开始题中给了一个 (背包加密算法的wiki) 然而跟这道题没有关系..此题数据范围值得注意:(
阅读全文
摘要:原题链接:Beauty Values 题意:给你一个序列,让你求出 所有子区间的不同数字的个数 总和思路:或许有人跟我一样第一时间想到主席数这类的统计区间不同数个数(..好吧就当我这样),然而看到榜上过了那么多人在怎么说也不会再往那边想了,肯定是有规律的。我在分析这个区间不同个数的时候发现某个数对区
阅读全文
摘要:" 原题链接: " 题意 :$已知(x+y)$ % $p = b$ , $(x y)$ % $p = c$$\space$求x , y.若不存在则输出$ 1\space 1$ 思路 :$通过平方差公式(x y)^2$ = $(x+y)^2$ $ $ $4 (x+y)$ = $(b^2 4c)$ %
阅读全文
摘要:题意: 给你n个点,然后在给你一个概率。问是否有p%n 个点共线 (p>=20&&p<=100)。 思路:如果要问有多少个点共线我们可以枚举所有可以组成的直线然后去判断共线数目,然而如果要求出所有的直线恐怕再怎么说都会超时。所以我们尝试随机枚举: 随机找两个点以及其形成的直线(即寻找随机直线),如果
阅读全文
摘要:补题ing.... 从简单补起... 补题顺序:D - E - B(3/10) D - Knapsack Cryptosystem 原题链接:D.Knapsack Cryptosystem 题解链接:https://www.cnblogs.com/Tianwell/p/11372748.html E
阅读全文
摘要:题意:给你n个只含'(' ')'的字符串, 你可以将这些字符串左右端随意连接成一个新串,然后求出能得到的符合条件的 最长子序列。条件:(1) 空串符合 (2) 如果A符合则 (A)也符合 (3)如果A,B符合则 AB也符合 : 总言之就是将这个括号串放入栈中,如果能够全部弹出则为符合条件的串(左右括
阅读全文
摘要:最小生成树的性质:(1)最小生成树并不唯一,准确的来说是最小生成树的树形并不唯一(2)最小生成树的权值之和唯一,并且是最小的(3)最小生成树的边数 = 顶点数-1求最小生成树有两种经典算法:普里姆算法(prim)和克鲁斯卡尔(kruskal)算法算法比较:时间复杂度比较 https://blog.c
阅读全文
摘要:题意:给你T个例子,然后给出N,M,Q(2e9,2e9,1e5),即给出了一个(0,0)到(N,M)的矩形现在有Q次询问,0 a 表示在x轴的a处画一条平行于y轴的分割线。1 a 表示在y轴的a处画一条平行于x轴的平行线问每一次分割后最大的矩形面积为多少。思路:一开始拿到这道题我想到了线段树,然而.
阅读全文
摘要:打完这场心态蹦了... A. Circle of Students 真的服了,就是这道这么简单的题卡了我半天。一开始还想到用最大最小表示法。最后发现找到最大最小值的下标,用正循环一次和逆循环一次判断即可。 完整代码; B. Equal Rectangles 题意:给你n个矩形的边(4n个),问你能否
阅读全文
摘要:题意:n个兔子在河边排成一排玩(数轴上),每个兔子都有一个坐标任意一只兔子可以跳到其余任两只兔子(必须保证它们中间有空位)中间,问最多可移动多少次?思路:首先我们肯定要尽可能多的利用每两只兔子之间的间隙,去跳(插入)。但是在第一次跳的时候会损失一个两个兔子之间的间隙。所以我们选两边间隙较小的,用所有
阅读全文
摘要:题意:给你n个串,每个串长度不超过10。小明想联想记单词,如果对两个词进行联想记忆 花费 w*k (w为给定值,k为字符串之间对应位置不同的个数)。当然也可以不联想记忆,这样就只花费字符串长度的体力 问记忆完所有单词花费最小体力。 思路:把每个串当作一个结点,不同联想记忆的花费为路径权值(要将w*k
阅读全文
摘要:题意:第0年有一个Linearians子(我也不知道这个是什么东西,反正是自交的...),是红色red。每一年所有的都会生新的Linearians子(同时他们生的颜色与他们本身颜色相反(我们定蓝色为红色的反色)。 所有Linearians排成一排,然后对应的孩子排在父辈前面. 例如:(我们把0看作红
阅读全文
摘要:题意:天上有很多星星,每个星星有他自己的坐标和初始亮度每个星星的亮度在一秒内会加一如果大于最大亮度C就会变为0观察星星,给出视野范围(矩形)的左下角和右上角,以及观察的时间问视野中星星亮度总和是多少思路:一开始看到这道题,二维区间,想到了线段树....(不要问我为什么想到这个我们知道星星的亮度是在发
阅读全文
摘要://题意:给你多个字符串为一组,然后空一行后输入询问的字符串,你要输出以该字符串为前缀的字符串数目。 //思路:如果要一一匹配真的是,不知道什么时候去了...所以使用字典树。这里使用数组去模拟。
阅读全文
摘要:题意:一个城镇有n个路口,由一些单向马路连接。现在要安排一些伞兵降落在某些路口上,清查所有的路口。一个伞兵可以沿着马路一路清查过去。清查过程中不能有两个伞兵同时清查一个路口(应该是为了防止暴露)。给定城镇的线路,求最少需要几个人伞兵就能清查所有的路口。第一个整数表示测试数据的组数。对于每组测试数据,
阅读全文
摘要:题意:就是给出一棵树,然后你要尽可能少的在树上放置士兵,士兵会监视与其相连的结点。问怎样最少放置能够覆盖所有的结点思路:这道题就是一道最小点覆盖问题,我们就把树看作一种图,然后建立无向图求解。 已知结论最小点覆盖 = 最大匹配数(无向图除以2) 完整代码:
阅读全文
摘要:题意:给出一个N*N图,#表示有油,.表示水。现在要统计最多有多少块符合条件的油田条件:油田不能重合,为1 x 2 的矩形,可以竖着1x2也可以横着1x2。思路:我们可以把所有的油田看作一个单独的块,匹配时就搜索当前块上下左右相邻是否有油田实际上就是 油田作为一个点,两两相邻的点符合条件就连接一条边
阅读全文
摘要:题意:由于在过m分钟就要下雨,在花园玩的人(都没有带伞),需要在花园找到一把伞来防止淋湿。同时每个人只能最多拥有一把伞,且该伞不能和其他人共用。已知伞和人的坐标位置,以及人的行走速度问能否使每个人都匹配到一把伞输入:有T个测试样例,每个测试样例包含要下雨的时间t,n个人以及其坐标速度信息,m把伞以及
阅读全文
摘要:题意:给你一个0,1的矩阵然后你现在可以多次交换任意的两行或者两列使得该矩阵的对角线全为1.如果不能则输出-1思路:我们可以把行列交换看做一种匹配,要是得对角线的所有为1就要把所有的1交换到G[i][i]的位置,比如某个1在(0,1){初始行号为0}那么我们就可以把它交换到(0,0)或者(1,1),
阅读全文
摘要:1.二分图 二分图概念,二分图判定(dfs,bfs染色),二分图最大匹配(匈牙利算法(O(M*N)),Hopcroft-Karp算法(O(sqrt(n)*m)),最小点覆盖,最大独立集 二分图相关参考博客:https://www.cnblogs.com/czsharecode/p/9777533.h
阅读全文
摘要:A. 题意: 模拟操作,有九间房子(0~9)L代表某人入住从左往右起第一个为空的房间,R表示从右往左起第一个空的房价。数字i代表第i个房间的人离开房间。最后输出房间的入住状态,有人则输出为1,没人则输出0思路:一开始没有读懂题意,以为是模拟双端队列那种.其实就是遍历到第一个为0的地方改为1即可 B.
阅读全文
摘要:(补题ing...按难易程度写补题解吧...) G - A - B (3/10) G:Gemstones 题解:鄙人 G题题解 A. All-one Matrices 题解:A题题解 B. Beauty Values 题解链接
阅读全文
摘要:题意:给出P门课程,N个学生。每一门课程可能有多个学生感兴趣然后我们需要匹配,使得每一门课程都只包含一名对其感兴趣的学生问:能否匹配成立思路:这个就是典型的二分图匹配问题。常用匈牙利算法 完整代码:(一开始写成了无向图....)写成有向图是因为学生是可以剩余的
阅读全文
摘要:思路:给你一个棋盘,给出障碍物。你需要在棋盘上摆放尽可能多的车(象棋)然后求出棋盘中有多少位置 如果不摆放会使最大摆放数目减小思路:我们从 HDU-1045 Fire Net 中知道可以对棋盘进行处理成二分图的形式然后求出其最大匹配,同时我们也知道,棋子的位置(i,j)被处理成了二分图中的边所以要求
阅读全文
摘要:题意:给出一个不会超过4x4的mapmap中有墙,以及空白处。然后你要在空白处放置尽可能多的炮台炮台对向四周发射子弹,即(炮台不能放在同一行或者列除非有墙阻挡)思路:首先想到了dfs枚举(就像八皇后一样回溯法),我们尽可能多的在一行一行的放置.关于放置搜索的问题,我们判断是否合法关于二分图匹配(完全
阅读全文
摘要:题意:给出编号范围为N的人,然后再给出编号a b 之间有认识的关系。给出m组这样的关系,然后让你分出两组使得每组中每个人互相都不认识(认识关系没有间接性),如果能分组的话,就将两个认识人放到一个房间中,求最多需要的房间数思路:以前做过并查集关于分组的题所以首先想用并查集来试一下(并查集分组是开两倍的
阅读全文
摘要:题意:给出一个无相图,然后q次新增加边,问在添加边的过程中桥的数目当且仅当无向边(u,v)为树枝的时候,需要满足dfn(u)<low(v),也就是v向上翻不到u及其以上的点,那么u-v之间一定能够有1条或者多条边不能删去,因为他们之间有一部分无环,是桥思路:首先我们知道在给定一张图之后,不断添加边,
阅读全文
摘要:题意:给你一个数轴,从0开始出发,只能通过传送站转移,然后问能否通过给定的传送站转移到终点传送站给出坐标,以及其能够移动的范围思路:我们可以想到dfs来搜索路径。由于每个传送站可以进行转移,即记录站点位置(转移时只能这样),然后再用vis记录是否访问(避免重复),到达终点标记为成功记录上由于范围较小
阅读全文
摘要:题意:给出两个序列a,b;a序列一开始为0,b序列为输入中给出的固定序列有n次修改,l r k ,即在a的(l,r)区间内的元素全部加1。在m次查询,l r 即询问在区间以内 的值思路:区间修改已经区间维护就会想到线段树。但是怎样维护这棵树?由于b是固定的序列,且ai/bi还要向下取整我们区间要修改
阅读全文
摘要:完整代码:(如果数组大小没有开够给出的可能是WA的结果)
阅读全文
摘要:题意:给出长为N的序列,然后Alice与Bob每次要轮流从中取两个数,如果|x-y|的差值已经存在与序列中以为着此次的操作无效,反之则有效。并且把得到的差值加入到序列中思路:要使得最后一个人操作无效即,该序列已经成为一个1到N的等差数列所以我们就要计算最后成为这种序列的次数。而要计算这个序列的次数,
阅读全文
摘要:题意:给出一张图求它的割点个数: 割点: 定义:无向图中,如果有一个顶点,删除这个顶点以及这个顶点相关联的边以后,图的连通分量增多,就称这个点集为割点。 判断一个顶点是不是割点除了从定义,还可以从DFS(深度优先遍历)的角度出发。我们先通过DFS定义两个概念。假设DFS中我们从顶点U访问到了顶点V(
阅读全文
摘要:题意:给出你N个炸弹坐标,以及每个的爆炸范围,引爆炸弹所需的花费。如果某个炸弹在另一个的爆炸范围以内,则可以被另一个炸弹引爆(间接引爆)。问引爆所有炸弹所需的最小花费 思路:把炸弹看作一个点,间接引爆就相当于一条有向边。最终所形成的图中,我们去找强连通分量。每个分量中花费最小的cost 以及 入度为
阅读全文
摘要:题意:给出一个无向图,然后你要输升序输出该图中 所有的桥。 思路:使用tarjan对桥的求法性质: 当且仅当无向边(u,v)为树枝的时候,需要满足dfn(u)<low(v),也就是v向上翻不到u及其以上的点,那么u-v之间一定能够有1条或者多条边不能删去,因为他们之间有一部分无环,是桥。 如果v能上
阅读全文
摘要:题意:给出一个有向图输出1:至少要向多少台电脑放文件能使所有电脑都能得到文件输出2:至少加多少条边,可以使得在任意地方放文件,文件都能到达任意一台电脑思路:从题意上来看就是 寻找有向图中的强连通分量(极大强连通子图)输出2即是:在DAG上要加几条边,才能使得DAG变成强连通图所以使用tarjan算法
阅读全文
摘要:B. Zero Array 题意:给出一个长为N的序列然后,每次能对序列中任意两个不相同的值同时减1,判断最后能否将全部减为0 思路:一开始毫无疑问可以想到,要把序列减为0,总值必须为偶数。其次,就是要避免最后减完后还余留某个值(自身不能够相减),即将所给序列先sort一边然后判断最大的是否大于总值
阅读全文
摘要:给你n个点的哨点坐标,然后对应有M个卫星,问怎样连接使通信花费最小,给出最小花费的最长边将拥有卫星的两个哨所可以直接连接,不需要花费思路:由于要求出最小花费的最长边,所以我们去掉M-1条最大边,即输出第 N-M条边即为所求要找到连接的第N-M边,我们就利用kruskal算法来求解 完整代码:(关于精
阅读全文
摘要:题意:给出N个点,以及对应连接的费用邻接矩阵,每两个点之间连接还要额外花费 该节点的额外消费额 。问怎样连接 使得花费最小思路:事实上我们在建立路径的时候就把 结点额外花费的值加进去就行了 krusal 题解: prim 题解:
阅读全文
摘要:给你一个N个顶点的邻接矩阵形式的无向图,然后给你M个已经修好的路。问最后把所有村庄连接好的最小花费思路:我们知道所给出的m条路已经修好即是两个村庄之间的距离被更改为0,顺便熟悉 kruskal算法 ,这里便用了。 我们使用 并查集 来表示边集合,然后记录所有的边信息 ,进行一次 sort 排序,如果
阅读全文
摘要:题意:给出球形空间站数目N,以及各个空间站的三维坐标x,y,z 以及 半径r ,求将所有空间站连接的最小cost (cost就等于空间站之间的距离) 如果接触,包含,或者相交则不需要搭建桥 思路:还是一道最小生成树的题目,我们先记录每个空间站的信息,然后将所有空间站两两相连接,如果 如果接触,包含,
阅读全文
摘要:题意:给出N台电脑(编号为1~N),然后M条连接路径以及对应权值,问怎样把所有结点连接且使得权值和最小 思路:这就是一道最小生成树。但是要注意的是,在输入中,会出现某条边重复输入且权值不同的情况,那么我们就要对应的 add中进行更新判断 完整代码:
阅读全文
摘要:题意:给出一张图然后求最小生成树输入:N个点(输入以0结尾),然后对应N个点相连的 边数m, 以及对应指向的结点 以及权值思路:采用prim算法来做,先类似于dijsktra,搜索集合外点的路径,最小的路径然后加更新集合。再采用优先队列优化,减小每次判断要路径权值大小 完整代码:
阅读全文
摘要:题意:给你一个长为N的序列,m次询问区间最大最小之差 思路:一开始用线段树做一直TLE,加速挂也开了,什么都写了还是TLE(可能是优化的还不够)。由于这道题不涉及任何的在线更新问题,于时就学到了一种 O(1)查询的 st表(RMQ基本算法) 其是利用递推以及倍增的思想,直接就离线处理好了区间最值。所
阅读全文
摘要:题意:给出一个很大的范围(1 <= ri <= 10000000.)表示所给出的m次询问修改中会出现在这个范围中,问最后能够看到的完整海报数 思路:看到这么大的范围我们就会思考离散化数据,离散化说的高大上实际上就是压缩所给出的数据空间。因为所给出的数据不会布满(1至1e7)所以就把空白处的空间压成一
阅读全文
摘要:题意:m次询问给你区间段的颜色,然后区间修改颜色覆盖,统计最后各种颜色出现的段数 思路:就是线段树比较基本的操作,区间修改,再把区间所有的值赋值给统计数组,然后统计段个数 完整代码:
阅读全文
摘要:题意:就是给出一张无相图,判断有没有回路思路:对于无向图判环问题,可以采用dfs染色或则并查集的方式 如果使用并查集的话,如果存在环即在某次 将某边的两个结点 进行比较,如果发现已经在同一个集合则说明存在环 完整代码:
阅读全文
摘要:题意:给你N中货币以及名称,m种货币的交换汇率,问是否存在一种交换途径,从某种货币开始到该货币结束,交换完不少却多的情况 思路:汇率交换问题一般就是求正权回路的问题,和 POJ-1860是基本上一样的问题,我们可以使用bellman-ford算法来判断,通过 对每个点循环m次松弛操作,如果最后还会改
阅读全文
摘要:题意:有N个奶牛, M个比较,a b标名a能够击败b,问最终能够确定排名的奶牛个数为多少个 思路:从排序的角度来讲我们肯定会先想到拓扑排序,但是拓扑排序只能知道是否排序唯一,不能够得到确定排序的个数 所以换一个思路如果 一个点与其他所有点之间都有关系那么这个点就能够确定排名这就涉及到传递闭包的操作,
阅读全文
摘要:题意:给定一个下三角矩阵,询问从1开始到其他点的最短路径中,最长的那个是多少。 输入:N编号个数,然后对应 邻接矩阵的权值 思路:根据题意就是直接使用 dijkstra,因为是单源最短路且没有负权。然后把得到的dist 去循环一次找到最大的值即可 对于图的存储,由于编号数比较小,而且又是矩阵,所以直
阅读全文
摘要:题意:给F个农场(样例),在第一行输入N,M,W(编号范围,路径数,虫洞数)在2~M+1 行给出从a到b的双向路径,cost为w ; 在M+2~M+n-1 给出从a到b 减时的-w问从原点出发,能否经过某些路径使得时间回到出发之前(存在负环路)思路:从题意可知,这就是求图中是否有负环回路问题那么我们
阅读全文
摘要:题意:一只青蛙想从自己脚下的石头开始调到另一只青蛙的石头上,它可以直接跳,也可以借助别的空石头跳。输入的数据是每个石头的坐标(第一个是这只青蛙踩的石头的坐标,第二个是另一只青蛙踩的石头的坐标)(从一块石头到另一块石头的最大距离) 思路:虽然是最短路的专题,但是感觉也不算是完全最短路的题,应该更多的运
阅读全文
摘要:题意:草场上有n个农场,农场之间有一些路径,每个农场里住着一头牛,现在x农场的牛要过生日开party,其他农场的牛要到该农场去参加party, 现在让你选择一头来回耗时最多的一头牛出来,输出时间。给你一个n个结点、m条边的有向图,现在要你求从n-1个结点到达指定的一个结点的来回最长路 思路:如果返程
阅读全文
摘要:题意:思路:(虽然被放到最短路专题上但是我却想到生成树的问题)就是给出n个位置,有m条边 , 给出m条边的信息,然后求点1到点n处 中的一条路,使得运载最大(这个运载量是取的该路径中沉重最小的量) 就是像prim构造最小生成树一样构造最大生成树 完整代码:
阅读全文
摘要:题意:N和M(0<N<200,0<M<1000),分别代表现有已修建的道路的数目和城镇的数目,城镇分别以0~M-1编号。接下来N条道路 A, B, X (0<=A,B<N,A!=B,0<X<10000) , 两个整数S,T(0<=S,T<N),分别代表起点和终点。如果数据不存在则输出-1 思路:使用
阅读全文
摘要:题意:N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。城镇分别以0~N-1编号。A,B,X代表A,B间有一条权值为X的路(0<=A,B<N,A!=B,0<X<10000)两个整数S,T(0<=S,T<N),分别代表起点和终点。求出从S到T的最短距离,如果数据不
阅读全文

浙公网安备 33010602011771号