![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
-------------图论------------
The___Flash
这个作者很懒,什么都没留下…
展开
-
Fast Matrix Operations (UVA - 11992,二维线段树 + 简单应用)
一.题目链接:UVA-11992二.题目大意:有一个 r × c 大小的矩阵,最多有个元素,r ≤ 20.矩阵中元素的初始值均为 0.现有三种操作① 1 x1 y1 x2 y2 v :将 (x1, y1) 到 (x2, y2) 之间的元素都加上值 v.② 2 x1 y1 x2 y2 v:将 (x1, y1) 到 (x2, y2) 之间的元素都置为值 v.③ 3 ...原创 2019-03-24 10:51:25 · 155 阅读 · 0 评论 -
连接的管道 (HDU - 5253 ,自己建边的最小生成树)
一.题目链接:HDU-5253二.题目大意:有一个 n × m 的图,每个点都有自己的地势高度先要修建管道,使得每个点都联通(每个点都只能与其上下左右的点建立管道)求所需最少的管道长度.三.分析:读入图后,以某个点的 上方向 和 左方向 建边.之后最小生成树 Krual 算法即可.注意:存边时数组要开 M * M * 2 + 5!因为这个地方WA了好几次.四...原创 2019-04-18 21:26:28 · 207 阅读 · 0 评论 -
Calculate the Function( ZOJ - 3772,线段树 + 递推矩阵乘积)
一.题目链接:ZOJ-3772二.题目大意:给 n 个数 a[1~n]定义如下:对于每次查询,给出区间端点和的值求出.三.分析:由递推式可得所以我们可以建一颗线段树,节点值存为矩阵,父节点就存为矩阵乘积.然后进行区间查询即可.查询得到的矩阵再乘以矩阵取(0,0)元素即可.因为线段树的遍历顺序,所以...原创 2019-04-24 21:12:05 · 117 阅读 · 0 评论 -
Yet Another Data Structure Problem (ZOJ - 3998,双懒惰标记线段树)
一.题目链接:ZOJ-3998二.题目大意:给你 n 个数 a[1 ~ n].现有 3 种 m 次操作:① l r v 将 a[l ~ r] 的数都乘以 v② l r v 将a[l ~ r] 的数变为 a[l]^v....a[r]^v③ l r 查询 a[l] ×......× a[r].三.分析:双懒惰标记的线段树.详见代码吧...四.代码实现:...原创 2019-04-30 20:33:29 · 126 阅读 · 0 评论 -
Transformation( HDU - 4578 ,多重懒惰标记线段树 + 思维)
一.题目链接:HDU-4578二.题目大意:n 个数 a[1 ~ n].现有 m 次 4 种操作.1 l r c:a[l ~ r] 都 + c2 l r c:a[l ~ r] 都 × c3 l r c:a[l ~ r] 都变为 c4 l r p:查询(p = {1, 2, 3})三.分析:由上述公式便可得每次更新后的 [1, 3]次幂的和....原创 2019-05-01 09:20:32 · 222 阅读 · 0 评论 -
Eight (HDU - 1043,反向 BFS + 康拓展开)
一.题目链接:HDU-1043二.题目大意:八数码经典问题.不懂的去玩 4399三.分析:挂上几个大佬的链接:八数码解的存在性证明康拓展开直接 BFS TLE 了.这里 反向 BFS 很妙,只搜索一次,把所有状态都记录下来.四.代码实现:#include <set>#include <map>#include <c...原创 2019-05-20 09:35:05 · 264 阅读 · 2 评论 -
Eight II (HDU - 3567,BFS 打表 + 思维)
一.题目链接:HDU-3567二.题目大意:Eight的升级版,游戏规则相同.每次给出两个字符串 A, B,问 从 A 到 B 的最少步数 并 打印最小字典序的路径.三.分析:看了大神的分析才懂。。。在这里阐述一下.只考虑 X 的位置,由于 1 ~ 8 数字无特殊性所以可将所给的 A 重新编号.例如 A1:8 7X 6 5 4 3 2 1编号为 A...原创 2019-05-20 20:34:38 · 385 阅读 · 0 评论 -
DNA sequence (HDU - 1560,IDA* + 小小思维)
一.题目链接:HDU-1560二.题目大意:给你 n 个字符串 str.让你求出一个字符串 s 的最小长度使得这 n 个字符串都是 s 的子序列三.分析:一道 IDA* 的模板题....这里的评估函数就用 max(若s 包含 str[i],还需的最小长度)四.代码实现:#include <set>#include <map>#i...原创 2019-05-24 20:39:15 · 259 阅读 · 0 评论 -
Escape (HDU - 3533,BFS + 模拟)
一.题目链接:HDU-3533二.题目大意:第一行 4 个整数 m,n,k,d.m × n 是地图大小,有 k 个炮塔.d 是初始生命值,每秒消耗 1 点生命值.之后 k 行.每行有 ch,t,v,x,y.ch = {'N', 'S', 'W', 'E'}t 为该炮塔发射炮弹的间隔时间.v 为该炮台发射子弹的速度.x,y 为该炮台的坐标.A 的初始位...原创 2019-05-21 21:37:08 · 214 阅读 · 0 评论 -
Fire! (UVA - 11624,BFS + 模拟)
一.题目链接:UVA-11624二.题目大意:给你一个 N × M 的图,图由以下符号组成.'#':墙'.':空地'F':火'J':起点每时刻,火会向四周延展(墙可阻隔火的延展)每时刻,人可以向四周任意一个方向移动.当人到达边界时,人再走一步即可逃离.求最少需要多少时间,人能够逃离,如果不能逃离,则输出 "IMPOSSIBLE".三.分析:就是在...原创 2019-05-17 22:16:33 · 151 阅读 · 0 评论 -
Nightmare Ⅱ (HDU - 3085,双向 BFS + 模拟)
一.题目链接:HDU-3085二.题目大意:给你一个 n × m 的图,图由以下符号组成.'.' :空地'X' :墙'M' :男'G' :女'Z' :鬼规则:男、女、鬼 都可以向上下左右四个方向走每秒男的可以走三步,女的走一步,墙不能走.每秒每个鬼 会分出子鬼占领距离他单位长度 ≤ 2 的方格(包括墙)若男 || 女 被鬼抓住,则 GG....原创 2019-05-27 21:47:36 · 167 阅读 · 0 评论 -
Legacy (CodeForces - 787D,线段树建图 + spfa)
一.题目链接:CodeForces-787D二.题目大意:有 n 个点,q 个关系,从起点 s 出发,求单源最短路.其中,关系有三种:①:u v c 表明u 到 v 有一条花费为 c 的路.②:u l r c 表明 u 到区间 [l, r] 内任意一点有一条花费为 c 的路.③:u l r c 表明区间 [l, r] 内任意一点到 u 有一条花费为 c 的路.三....原创 2019-07-07 21:23:15 · 153 阅读 · 0 评论 -
Kth Minimum Clique(2019牛客暑期多校训练营(第二场)D,K 大完全子图)
一.题目链接:Kth Minimum Clique二.题目大意:有 n 个点,有着各自的点权.给出连通的边.求权值 k 大的完全子图.三.分析:由于 n ≤ 1e3,所以直接暴搜即可.这里和状压 DP 有点像,搜索的是状态以及对应的权值.考虑状态的转移,比如在什么情况下,i 点可以加入.因为是求完全子图,所以现状态应真包含于 i 点的连接点,否则就不是完全图...原创 2019-07-22 18:41:23 · 342 阅读 · 0 评论 -
Assign the task( HDU - 3974,DFS + 线段树)
一.题目链接:HDU-3974二.题目大意:一个整数 n ,表示有 n 位员工.之后 n - 1 行,给出员工 u 与 员工 v 之间的隶属关系.有 2 种 m 次操作C x:查询员工 x 当前的所做任务.T x y:将员工 x 的当前任务改为 y.当员工 x 做任务 y 时,员工 x 的员工也会同时做任务 y,以及员工 x 的员工的员工。。。三.分析:想要...原创 2019-04-27 21:28:49 · 128 阅读 · 0 评论 -
Vases and Flowers (HDU - 4614,线段树 + 二分 + 思维)
一.题目链接:HDU-4614二.题目大意:有 N个花盆,起初都没有花.1 个花盆只能插 1 朵花.有 m 次 2 种操作.① 1 A F:从第 A 花盆开始插 F 朵花,多余的丢弃.若一朵花都无法插入,则输出 "Can not put any one."否则,输出插花的起点、终点.② 2 A B:将 A ~ B 花盆中的花丢弃,并输出所丢弃的花的个数.三...原创 2019-05-01 20:45:26 · 273 阅读 · 0 评论 -
Slim Span (UVA - 1395,最小生成树 + 简单应用)
一.题目链接:UVA-1395二.题目大意:给定 n 个点,m 条边的无向图.定义生成树的 “苗条度” == max树边权值 - min树边权值.求生成树的最小苗条度.三.分析:大体思路就是用 Kruskal 算法求解最小生成树.由于生成树的 “苗条度” == max树边权值 - min树边权值所以先sort 一遍边的权值然后从小到大枚举生成树的最小权值边...原创 2019-03-18 21:33:00 · 190 阅读 · 0 评论 -
Sorting It All Out (POJ - 1094 ,拓扑排序 + 链式向前星存图)
一.题目链接:POJ-1094二.题目大意:给出 n,m.字母由 A 到 A + n.给出 m 个关系,形式如:A<B.输入结束后若字母顺序已确定,则输出 "Sorted sequence determined after 最少步数relations: 字母顺序."若有矛盾,则输出 "Inconsistency found after 最小步数relati...原创 2019-03-15 22:54:39 · 781 阅读 · 0 评论 -
Fairy tale(BFS + 大模拟)
一.题目链接:Fairy tale二.题目大意:给你一个N × N 的地图,图上的每个点有四种方向(E W S N),代表着移动方向.在 t = 0 时,saya 在 (1, 1),treasure 在 (n, n).在每个单位时间内,分为 3 步.①saya 先按照地图移动一个单位.② saya 可以向四个方向移动一个单位,saya 会移动到距离 treasure ...原创 2019-03-09 11:24:30 · 295 阅读 · 2 评论 -
SDNU ACM-ICPC 2019 Training Weekly Contest 1
比赛链接:SDNU ACM-ICPC 2019 Training Weekly Contest 1题目链接:A - Concatenated Multiples题目大意:给 n 个数,将这 n 个数两两组合,问有多少组可以被 k 整除.分析:比如 a 与 b 组合,则组合后为 .所以想要被整除只需要 ( % k + b % k) % k == 0.所以用...原创 2019-03-06 16:17:10 · 182 阅读 · 0 评论 -
骑士精神 (HYSBZ - 1085 ,简单 A* 暴搜)
一.题目链接:HYSBZ-1085二.题目大意:直接看题目,懒得解释.三.分析:其实就是一个简单 A* 搜索 的板子为了方便,分析就写注释里了.四.代码实现:#include <set>#include <map>#include <ctime>#include <queue>#include <cma...原创 2019-02-20 10:48:06 · 198 阅读 · 0 评论 -
迷宫问题 (POJ - 3984 ,BFS + 路径输出)
一.题目链接:POJ-3984二.题目大意:给出一个迷宫,输出路径.三.分析:初学 bfs 的小伙伴在入坑 bfs 后,终于学会了判断迷宫问题是否能够到达终点。那么, 现在又迎来了一个新的问题 —— 若迷宫的解唯一, 那么怎样输出迷宫路径呢 ?比如 poj 3984 迷宫问题在 AC 之后, 写这篇博客不仅是为了供大家学习,斧正, 更是为了自身的总结, 吸取教训。...原创 2019-02-03 20:29:27 · 1743 阅读 · 0 评论 -
Binary Land(ZOJ - 3478,BFS + 模拟)
一.题目链接:ZOJ-3478二.题目大意:给你一个 10 × 15 的图,图中包括以下符号.'H' :终点'X' :墙'O' :蜘蛛网'.' :空地再给出两只异性企鹅各自的起点坐标.只可以选取一只企鹅进行操作.一只企鹅进行运动时,另一只企鹅的运动与这只企鹅左右对称运动.企鹅运动无限制,当企鹅要走进墙时,则这只企鹅不动.当一只企鹅走进蜘蛛网时,此企鹅...原创 2019-04-25 22:16:48 · 231 阅读 · 0 评论 -
Highway Project (ZOJ - 3946,双权值 spfa)
一.题目链接:ZOJ-3946二.题目大意:T 组数据.第一行两个整数 n,m 之后 m 行数据,每行给出第 i 条路的 {起点,终点,花费时间,花费金钱}首都为第 0 号城市.求从首都到其他所有城市所需的 总时间 和 总建路花费.三.分析:双权值的单源最短路,更改 if 条件语句里就可以了.注意:时间可重复加,但花费不可以.所以直接用 dis2[v...原创 2019-04-14 21:25:46 · 184 阅读 · 0 评论 -
Can you answer these queries?( HDU - 4027,线段树 + 细节)
一.题目链接:HDU-4027二.题目大意:n 个数.有两种操作.0 X Y:将区间 [X, Y] 的数开方(向下取整)1 X Y:查询区间 [X, Y] 的和.三.分析:直接线段树单点更新会 TLE,由于根号 7 次后向下取整为 1.所以只需要记录每段区间被更新过的次数.注意:所给的 X,Y 大小关系不确定因为这里 WA 了三天啊啊啊啊啊啊 555....原创 2019-04-26 19:55:17 · 180 阅读 · 0 评论 -
Tunnel Warfare (HDU - 1540,这也能用线段树 ?!)
一.题目链接:HDU-1540二.题目大意:有 n 个村庄排列在一条线上,编号为 1 ~ n.现有 3 种 m 次操作D x:摧毁第 x 个村庄Q x:查询与第 x 个村庄相邻的村庄数.R:修复上一个被摧毁的村庄.三.分析:当查询与第 x 个村庄相邻的村庄数时只需要查询在 1 ~ x 中被摧毁村庄的最大编号&& 在 x ~ n 中被摧毁村...原创 2019-04-26 22:17:16 · 331 阅读 · 0 评论 -
Mayor's posters (POJ - 2528,离散化 + 线段树)
一.题目链接:POJ-2528二.题目大意:墙的长度 ≤ 1e7,海报个数 ≤ 1e4.按时间顺序,给一堵墙贴海报.每次给出海报贴到墙上的区间,求最后能看到几张海报.三.分析:典型的线段树求区间问题可是墙太长,直接求会 TLE.观察到 n 只有 1e4,那么最多会有 2e4 个点所以先进行离散化处理,再用线段树更改区间.四.代码实现:#includ...原创 2019-04-22 19:46:04 · 202 阅读 · 0 评论 -
Count the Colors (ZOJ - 1610,离散化 + 线段树)
一.题目链接:ZOJ-1610二.题目大意:一条线上,端点编号为 [0,8e3].每次给出一段区间 和 一种颜色编号,在线上的这段区间染色.问每种颜色出现的次数.三.分析:这道题(记为 Q1)与这道题(记为 Q2)不太一样画个图理解一下:可以看到对于 Q1 来说,[3, 4] 区间内为红色,但是节点 3 与 节点 4 相邻,此时不好判断而 Q2 不存在...原创 2019-04-22 23:25:00 · 184 阅读 · 0 评论 -
MAZE(2019牛客暑期多校训练营(第二场)E,线段树 + 矩阵乘法)
一.题目链接:MAZE二.题目大意:给一个 n × m 大小由{0,1}构成的矩形,Q 次询问.0 可以走,1 不可以走.每次走只能向下,左,右方向,且不能走重复的位置.每次询问有三个整数:q,a,b.当 q 为 1 时,将点(a,b)取反.当 q 为 2 时,求出从点(1,a)走到点(n,b)的方案数 % (1e9 +7).三.分析:先考虑一个点的方案数...原创 2019-07-23 11:15:33 · 182 阅读 · 0 评论