图论
TelmaZzzz
HEU ACMer
展开
-
codefoces 449B Jzzhu and Cities(最短路)
题解: 题目给出m条双向边,k条从节点1出发的有向边,问在不影响最短路的情况下,这k条从1出发的边最多能去掉几个。 其实转换过来的意思就是在图中跑最短路找关键路径。其做法就是在每次松弛的时候判断边是否为k条边中的一条,若是则把这个结点打上true标记,若不是则打上false标记。 代码: #include <map> #include <set> #include <...原创 2019-04-12 00:35:00 · 141 阅读 · 0 评论 -
gym 101987 B Cosmetic Survey
题意 题意化简就是让你模拟出两两题面喜欢的人数之间的大小关系,连接单向边,然后定义了S(s,t)代表从s到t的所有路径中,最小边的最大值。并输出对于点x,满足其他所有点y使得S(x,y)>=S(y,x)并输出这些点 (n<=500) 题解 按题意模拟出建边后,对于该问题跑个Floryd,即可求出S数组,去转移式子S[x][y]=max(S[x][y],min(S[x][k],S[k][...原创 2019-10-03 22:48:29 · 287 阅读 · 0 评论 -
gym 102028 H The Problem to Make You Happy (有向图博弈)
题意 给定一张有向图,以及A B的起始点,满足规则若在一个时刻A与B在同一个位置,则B输,轮到了当无路可走则输,若无限循环则B赢。B先手 题解 维护B的必败点,定义状态,vis[u][v][0/1]代表B在u,A在v,0代表该轮轮到B,1代表该轮轮到A。可知初始状态vis[i][i][0&1]和vis[u][1~n][0](if outdeg[u]==0) 这些点为必败点。 考虑从已知点扩...原创 2019-09-22 00:19:19 · 337 阅读 · 0 评论 -
gym 102028 C The Problem Needs 3D Arrays
题意: 给定n个互不相同的数,从中选取一个子序列使得子序列中逆序对的个数/子序列长度最大。 题解: 由于n的范围为100,可以往网络流方向思考,发现若将逆序对都连边,问题所求就变成图中子图边数/子图点数的最大值。 而这类问题便可以想到最大密度子图问题,ans=∑E′∈E1⋅Xe∑V′∈V1⋅Xvans=\frac{ \sum_{E' \in E}{1 \cdot X_e} }{\sum_{V' \...原创 2019-09-22 00:05:26 · 216 阅读 · 0 评论 -
gym101612 G Grand Test (dfs)
题意 给定一张无向图,求是否能在图中找到一对点,使得其有3条不重复(中间途径的点不相同)的简单路,并输出方案 题解 首先对图创建成一颗dfs树。 枚举图中不是树边的边,(其树边上对应的路径必定是一条链),将该链以及该边染色,若发现一条边重复染色则记录下这两种染色,退出枚举 重新跑一遍这两种染色方案,可以在图中得到两个简单环,之后找到两个简单环中的任意三度结点作为起点和终点,暴力求简单边即可(由于...原创 2019-09-08 01:01:30 · 258 阅读 · 0 评论 -
2017 NEERC J Journey from Petersburg to Moscow (最短路)
题意 给定n=103,m=103n=10^3,m=10^3n=103,m=103的图,路径前k大边的和为该路径的代价,问其中所有从1−n1-n1−n的路径中代价的最小值是都少。 题解 假如所求的最短代价路径的边数小于等于k,那么答案肯定是原图最短路 假如所求的最短代价路径的边数大于k,那么我们发现其计算的方式是将不在前k大路径的代价置为0去计算。考虑这一问题,我们只要枚举所有边,假设该边为所求最...原创 2019-08-31 21:06:36 · 255 阅读 · 0 评论 -
2018HDU多校补题 HDU 6331(dp)
题意: 给定nnn为505050的有向图,给出1e61e61e6的问题,问从sss到ttt至少走kkk步的最短路 题解: 定义dp[st][i][j]dp[st][i][j]dp[st][i][j]表示恰好走st步从i到j的最短路。 那么我们输入的值则是dp[1][u][v]dp[1][u][v]dp[1][u][v] 之后就可以想到一个很容易想到的转移 类似于flord算法 dp[st][i][...原创 2019-07-11 23:58:57 · 179 阅读 · 0 评论 -
2018HDU多校补题 HDU 6386 (双端队列+虚点)
题意: 给定一张图以及每条路的类型,问从1到n至少需要换几次路可以走到。图的大小是n=1e5n=1e5n=1e5,m=2e5m=2e5m=2e5 题解: 首先想到这道题的最暴力的做法即,把每条边看出一个点,对于相邻的两条边连边,若这两条边类型相同则边权为000,否则边权为111。但是这样的化图的大小就是m2m^2m2级别的了,所以想到建立虚点,第一种虚点即结点,建立<n,m+n,1&...原创 2019-07-11 23:36:15 · 177 阅读 · 0 评论 -
codeforces 793D Presents in Bankopolis
题解: 大致题意为给定n最大为80的直线点阵,并给出m条单向路,且这m条路能走的条件是,路经过的点没有被访问过,问走完K个点的最小代价。起点任意,终点任意 由于n很小,第一反应是往费用流想,后来发现无法建图(可能是我太菜了) 之后考虑到是条直线,于是往区间dp的思路去想发现这个转移很好想到 dp[now][l][r][k]表示当前在now这个点,只能在(l,r)中找点,需要访问K-k个点的最小代价...原创 2019-04-30 01:22:07 · 270 阅读 · 0 评论 -
codeforces 507E Breaking Good
题解: 题意大致为给定1e5的无向图,在m条边中有点边是好的有的是坏的,若要用坏的就要修,多余的好的要炸。问从1到n的最短路中修和炸的次数最少是几次 首先大致框架就是一个bfs,之后我们可以利用类似求最短路松弛的原理,对每个点求最短路到此点需要修路的最小值(因为我们发现路只有两种情况,因此只要保证修的路越少,则用之前能用的路就会越多,炸的也就越少,这样总和才最少)这样回溯把路径打上标记,最后比较原...原创 2019-04-30 01:13:39 · 255 阅读 · 0 评论 -
codeforces 715 B Complete The Graph(二分+最短路)
题解: 题意大致为给定1e31e31e3的无向图,且给定起点sss和终点ttt,以及部分知道长度的边,让你补全不知道长度的边使得从sss到ttt的最短路为LLL 解题可以分为3个步骤 不将不知道长度的边跳过,求最短路,若最短路小于L则一定不可能成功输出NO,若等于则将未知边长设定为INF若大于则执行2 将所有未知边都设成1,跑最短路,若最短路大于L则一定不能成功(因为题意规定边长最小为1)输出N...原创 2019-04-30 00:58:30 · 195 阅读 · 0 评论 -
codeforces59E Shortest Path (bfs)
题解: 大致题意为给定3e3的无向图,已经给定1e5组非法行走路线(ai,bi,ci),问最少走几条路从1走到n,并输出路线 由于点只有3e3,所以可以记录前驱是pre,当前是x为小节点,是否跑过,来跑一遍bfs 这样就不会出现队列元素过多的情况出现。 代码: #include <map> #include <set> #include <ctime> #inc...原创 2019-04-30 01:04:54 · 251 阅读 · 0 评论 -
ZOJ-4097 Rescue the Princess (e-DCC缩边+LCA)
题解 题意是给定一个1e51e51e5的无向图(可自环可重边且联通度不为1),1e51e51e5次询问 问是否存在两条没有公共边的路使得vvv到uuu,www到uuu成立 第一容易想到的点是边缩。边缩后满足同一节点中的222个点必定有222条路可达到 之后通过这性质可以发现假如uuu与v、wv、wv、w任意一个在同一节点答案必定是YesYesYes 对于其他情况,我们又可以发现当求出这333个点相...原创 2019-04-16 00:42:21 · 161 阅读 · 0 评论 -
codefoces 558C Amr and Chemistry (bfs)
题解: 题意为给定n个数,允许有2种操作,一种是乘2 一种是除2(向下取整) 问最小需要几次操作使得n个数相等 首先发现一个显然的性质 答案不可能超过2e52e52e5,然后我们发现对于这类题目多会用bfsbfsbfs来解决,由于值的范围确定,我们就可以想到再记录num[i]num[i]num[i]表示nnn个数中能到达数字iii的个数,ans[i]ans[i]ans[i]则表示到达数字i的最小...原创 2019-04-12 00:42:02 · 156 阅读 · 0 评论 -
gym 101987 J Starwars(bfs)
题意 给定一张1e3的有向图,每条路径都有一个编码 (编码范围为20),并给出一些人类点,和目的点,求是否存在从非人类点出发到目的点的路径编号序与人类店出发到目标点的路径编码序一样。存在输出YES,否则NO 题解 倒着去考虑,假若存在一条一样的路那么从后往前回溯路径发现两条路径的起点都为目标点,终点一个为人类点,一个为非人类点,之后我们考虑两个状态代表人类和非人类,他们的出发点都为目标点,之后他们...原创 2019-10-03 22:56:53 · 440 阅读 · 0 评论