图论
还蛮喜欢图论的题的,感觉都很神奇,我会慢慢的将文件夹里的代码都移动过来
满地都是六便士他却抬头看向了月亮
一个喜欢写代码的小菜鸟
展开
-
1207. 大臣的旅费
很久以前,T 王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J 是 T 国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了 J最常做的事情。他有一个钱袋,用于存放往来城市间的路费。原创 2024-04-20 15:24:24 · 180 阅读 · 0 评论 -
4481. 方格探索
给定一个 n 行 m 列的方格矩阵。行坐标从上到下为 1∼n,列坐标从左到右为 1∼m。其中的每个方格,要么是空格(用 表示),要么包含障碍物(用 表示)。初始时,一个人位于第 r 行第 c 列的空格之中。他可以沿上下左右四个方向进行移动,每次移动一格距离。对于他的移动,有如下限制:请问,一共有多少个空格是此人可以抵达的?注意,初始空格视为此人可达。输入格式第一行包含两个整数 n,m。第二行包含两个整数 r,c。第三行包含两个整数 x,y。接下来 n 行,每行包含一个长度为 m 的由 和 组成的字符原创 2022-06-11 20:47:33 · 628 阅读 · 0 评论 -
367. 学校网络
摘要目标检测是计算机视觉的一个核心问题。随着深度卷积网络的发展,目标检测器的性能得到了极大的提高。基于深度卷积网络的物体检测器主要专注于回归包围盒的坐标,如Faster-RCNN, YOLO和SSD。不同于这些将边界框作为一个整体来考虑的方法,我们提出了一种新的使用点和链接的对象边界框表示方法,并使用深度卷积网络(PLN)来实现。具体地说,我们利用完全卷积网络对边界盒的角/中心点及其链接进行回归;然后我们将角点及其链接映射回多个边界框;最后通过融合多个包围盒得到目标检测结果。PLN对物体遮挡具有天生的鲁原创 2022-06-02 19:48:48 · 62 阅读 · 0 评论 -
363. B城
B 城有 n 个城镇,m 条双向道路。每条道路连结两个不同的城镇,没有重复的道路,所有城镇连通。把城镇看作节点,把道路看作边,容易发现,整个城市构成了一个无向图。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含两个整数 a 和 b,表示城镇 a 和 b 之间存在一条道路。输出格式输出共 nn 行,每行输出一个整数。第 i 行输出的整数表示把与节点 ii 关联的所有边去掉以后(不去掉节点 i 本身),无向图有多少个有序点 (x,y),满足 x 和 y 不连通。数原创 2022-05-28 15:26:18 · 211 阅读 · 0 评论 -
352. 闇の連鎖
传说中的暗之连锁被人们称为 Dark。Dark 是人类内心的黑暗的产物,古今中外的勇者们都试图打倒它。经过研究,你发现 Dark 呈现无向图的结构,图中有N个节点和两类边,一类边被称为主要边,而另一类被称为附加边。Dark 有N–1 条主要边,并且 Dark 的任意两个节点之间都存在一条只由主要边构成的路径。另外,Dark 还有M条附加边。你的任务是把 Dark 斩为不连通的两部分。一开始 Dark 的附加边都处于无敌状态,你只能选择一条主要边切断。一旦你切断了一条主要...原创 2022-05-27 14:16:11 · 64 阅读 · 0 评论 -
P5836 [USACO19DEC]Milk Visits S
题目链接这道题我写了两种解法,看到这道题我的并查集DNA一下子就动了,心想这不就是一个并查集吗,将相同种类的相连子块合并在一起,查询的时候若两个id的父节点不是一个,则证明两个id的路径横跨'H'和'U'两个子块,若两个父节点是一个,则需要查验是不是要求的种类即可。并查集代码如下:(近乎于O(n))#include <iostream>#include <vector>using namespace std;const int N=1e5+10;int g[原创 2022-05-27 12:49:25 · 93 阅读 · 0 评论 -
P3379 【模板】最近公共祖先(LCA)
题目这道题为我的最近公共祖先问题开了个好头,纠结了好久才决定学习二分优化版的 lca,学完感觉还蛮简单的,直接附代码吧。学习之前写的暴力法(70)#include <bits/stdc++.h>using namespace std;const int N=5e5+10;vector<int>adj[N];int n,m,s,u,v,ans;int dfs(int fa,int id){ int res=0; if(id=...原创 2022-05-26 17:21:28 · 115 阅读 · 0 评论 -
362. 区间
给定 n 个区间 [ai,bi] 和 n 个整数 ci。你需要构造一个整数集合 Z,使得 ∀i∈[1,n],Z 中满足 ai≤x≤bi 的整数 x 不少于 ci 个。求这样的整数集合 Z 最少包含多少个数。输入格式第一行包含整数 n。接下来 n 行,每行包含三个整数 ai,bi,ci。输出格式输出一个整数表示结果。数据范围1≤n≤50000,0≤ai,bi≤50000,1≤ci≤bi−ai+1输入样例:53 7 38 10 36 8 11 3 11原创 2022-05-25 15:40:02 · 52 阅读 · 0 评论 -
361. 观光奶牛
给定一张 L 个点、P 条边的有向图,每个点都有一个权值 f[i],每条边都有一个权值 t[i]。求图中的一个环,使“环上各点的权值之和”除以“环上各边的权值之和”最大。输出这个最大值。注意:数据保证至少存在一个环。输入格式第一行包含两个整数 L 和 P。接下来 L 行每行一个整数,表示 f[i]。再接下来 P 行,每行三个整数 a,b,t[i],表示点 a 和 b 之间存在一条边,边的权值为 t[i]。输出格式输出一个数表示结果,保留两位小数。数据范围2≤L≤1原创 2022-05-25 14:28:41 · 95 阅读 · 0 评论 -
377. 泥泞的区域
在一块 N×M 的网格状地面上,有一些格子是泥泞的,其他格子是干净的。现在需要用一些宽度为 1、长度任意的木板把泥地盖住,同时不能盖住干净的地面。每块木板必须覆盖若干个完整的格子,木板可以重叠。求最少需要多少木板。输入格式第一行包含两个整数 N 和 M。接下来 N 行,每行 M 个字符,用来描述地面,* 表示泥泞格子,. 表示干净格子,字符之间没有空格。输出格式输出一个整数,表示结果。数据范围1≤N,M≤50输入样例:4 4*.*..******..原创 2022-05-24 16:24:02 · 66 阅读 · 0 评论 -
378. 骑士放置
给定一个 N×M 的棋盘,有一些格子禁止放棋子。问棋盘上最多能放多少个不能互相攻击的骑士(国际象棋的“骑士”,类似于中国象棋的“马”,按照“日”字攻击,但没有中国象棋“别马腿”的规则)。输入格式第一行包含三个整数 N,M,T,其中 T 表示禁止放置的格子的数量。接下来 T 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出格式输出一个整数表示结果。数据范围1≤N,M≤100输入样例:2 3 0输出样例:4原创 2022-05-24 15:30:31 · 66 阅读 · 0 评论 -
376. 机器任务
有两台机器 A,B以及 K 个任务。机器 A有 N 种不同的模式(模式 0∼N−1),机器 B 有 M 种不同的模式(模式 0∼M−1)。两台机器最开始都处于模式 0。每个任务既可以在 A上执行,也可以在 B 上执行。对于每个任务 i,给定两个整数 a[i] 和 b[i],表示如果该任务在 A 上执行,需要设置模式为 a[i],如果在 B 上执行,需要模式为 b[i]。任务可以以任意顺序被执行,但每台机器转换一次模式就要重启一次。求怎样分配任务并合理安排顺序,能使机器重启次数最少。原创 2022-05-24 14:57:00 · 65 阅读 · 0 评论 -
374. 导弹防御塔
Freda 的城堡遭受了 M 个入侵者的攻击!Freda 控制着 N 座导弹防御塔,每座塔都有足够数量的导弹,但是每次只能发射一枚。在发射导弹时,导弹需要 T1 秒才能从防御塔中射出,而在发射导弹后,发射这枚导弹的防御塔需要 T2 分钟来冷却。所有导弹都有相同的匀速飞行速度 V,并且会沿着距离最短的路径去打击目标。计算防御塔到目标的距离Distance 时,你只需要计算水平距离,而忽略导弹飞行的高度。导弹在空中飞行的时间就是 (Distance/V) 分钟,导弹到达目标后可以立即将它击.原创 2022-05-24 13:48:30 · 265 阅读 · 0 评论 -
373. 車的放置
给定一个 N 行 M 列的棋盘,已知某些格子禁止放置。问棋盘上最多能放多少个不能互相攻击的車。車放在格子里,攻击范围与中国象棋的“車”一致。输入格式第一行包含三个整数 N,M,T,其中 T 表示禁止放置的格子的数量。接下来 T 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出格式输出一个整数,表示结果。数据范围1≤N,M≤200输入样例:8 8 0输出样例:8分析:也是匈牙利算法+二分图,这个思原创 2022-05-23 16:17:33 · 68 阅读 · 0 评论 -
372. 棋盘覆盖
给定一个 N 行 N 列的棋盘,已知某些格子禁止放置。求最多能往棋盘上放多少块的长度为 2、宽度为 1 的骨牌,骨牌的边界与各线重合(骨牌占用两个格子),并且任意两张骨牌都不重叠。输入格式第一行包含两个整数 N 和 t,其中 t 为禁止放置的格子的数量。接下来 t 行每行包含两个整数 x 和 y,表示位于第 x 行第 y 列的格子禁止放置,行列数从 1 开始。输出格式输出一个整数,表示结果。数据范围1≤N≤100,0≤t≤100输入样例:8 0输出样例:原创 2022-05-23 15:59:21 · 86 阅读 · 0 评论 -
350. 巡逻
在一个地区有 n 个村庄,编号为 1,2,…,n。有 n−1条道路连接着这些村庄,每条道路刚好连接两个村庄,从任何一个村庄,都可以通过这些道路到达其他任一个村庄。每条道路的长度均为 1 个单位。为保证该地区的安全,巡警车每天都要到所有的道路上巡逻。警察局设在编号为 1 的村庄里,每天巡警车总是从警局出发,最终又回到警局。为了减少总的巡逻距离,该地区准备在这些村庄之间建立 KK 条新的道路,每条新道路可以连接任意两个村庄。两条新道路可以在同一个村庄会合或结束,甚至新道路可以是一个环。原创 2022-05-22 15:43:40 · 132 阅读 · 0 评论 -
346. 走廊泼水节
给定一棵 N 个节点的树,要求增加若干条边,把这棵树扩充为完全图,并满足图的唯一最小生成树仍然是这棵树。求增加的边的权值总和最小是多少。注意: 树中的所有边权均为整数,且新加的所有边权也必须为整数。输入格式第一行包含整数 t,表示共有 t 组测试数据。对于每组测试数据,第一行包含整数 N。接下来 N−1 行,每行三个整数 X,Y,Z,表示 X 节点与 Y 节点之间存在一条边,长度为 Z。输出格式每组数据输出一个整数,表示权值总和最小值。每个结果占一行。数据范围1≤原创 2022-05-22 14:08:13 · 72 阅读 · 0 评论 -
340. 通信线路
在郊区有 N 座通信基站,P 条 双向 电缆,第 i 条电缆连接基站 Ai 和 Bi。特别地,1 号基站是通信公司的总站,N 号基站位于一座农场中。现在,农场主希望对通信线路进行升级,其中升级第 i 条电缆需要花费 Li。电话公司正在举行优惠活动。农产主可以指定一条从 1 号基站到 N 号基站的路径,并指定路径上不超过 K 条电缆,由电话公司免费提供升级服务。农场主只需要支付在该路径上剩余的电缆中,升级价格最贵的那条电缆的花费即可。求至少用多少钱可以完成升级。输入格式第 1原创 2022-05-17 16:42:17 · 81 阅读 · 0 评论 -
176. 装满的油箱
有NN个城市(编号0、1…N−1)和M 条道路,构成一张无向图。在每个城市里边都有一个加油站,不同的加油站的单位油价不一样。现在你需要回答不超过100 个问题,在每个问题中,请计算出一架油箱容量为 C的车子,从起点城市S 开到终点城市E 至少要花多少油钱?注意:假定车子初始时油箱是空的。输入格式第一行包含两个整数N 和M。第二行包含N 个整数,代表N 个城市的单位油价,第i个数即为第i个城市的油价pi。接下来M行,每行包括三个整数u,v,...原创 2022-05-08 14:35:58 · 277 阅读 · 0 评论 -
图论:信使
战争时期,前线有nn个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。信在一个哨所内停留的时间可以忽略不计。直至所有nn个哨所全部接到命令后,送信才算成功。因为准备充足,每个哨所内都安排了足够的信使(如果一个哨所与其他kk个哨所有通信联系的...原创 2021-12-16 15:12:32 · 86 阅读 · 0 评论 -
图论:热浪
德克萨斯纯朴的民众们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是它们并不是很擅长生产富含奶油的乳制品。农夫John此时身先士卒地承担起向德克萨斯运送大量的营养冰凉的牛奶的重任,以减轻德克萨斯人忍受酷暑的痛苦。John已经研究过可以把牛奶从威斯康星运送到德克萨斯州的路线。这些路线包括起始点和终点一共有TT个城镇,为了方便标号为11到TT。除了起点和终点外的每个城镇都由双向道路连向至少两个其它的城镇。每条道路有一个通过费用(包括油费,过路费等等)...原创 2021-12-16 15:02:28 · 148 阅读 · 0 评论 -
图论:昂贵的聘礼
年轻的探险家来到了一个印第安部落里。在那里他和酋长的女儿相爱了,于是便向酋长去求亲。酋长要他用1000010000个金币作为聘礼才答应把女儿嫁给他。探险家拿不出这么多金币,便请求酋长降低要求。酋长说:”嗯,如果你能够替我弄到大祭司的皮袄,我可以只要80008000金币。如果你能够弄来他的水晶球,那么只要50005000金币就行了。”探险家就跑到大祭司那里,向他要求皮袄或水晶球,大祭司要他用金币来换,或者替他弄来其他的东西,他可以降低价格。探险家于是又跑到其他地方,其他人也...原创 2021-12-16 15:08:21 · 90 阅读 · 0 评论 -
图论:香甜的黄油
农夫John发现了做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道 N 只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。农夫John很狡猾,就像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。农夫John知道每只奶牛都在各自喜欢的牧场(一个牧场不一定只有一头牛)。给出各头牛在的牧场和牧场间的路线,找出使所有牛到达的路程和最短的牧场(他将把糖放在原创 2021-12-16 15:15:00 · 133 阅读 · 0 评论 -
图论:信使
战争时期,前线有nn个哨所,每个哨所可能会与其他若干个哨所之间有通信联系。信使负责在哨所之间传递信息,当然,这是要花费一定时间的(以天为单位)。指挥部设在第一个哨所。当指挥部下达一个命令后,指挥部就派出若干个信使向与指挥部相连的哨所送信。当一个哨所接到信后,这个哨所内的信使们也以同样的方式向其他哨所送信。信在一个哨所内停留的时间可以忽略不计。直至所有nn个哨所全部接到命令后,送信才算成功。因为准备充足,每个哨所内都安排了足够的信使(如果一个哨所与其他kk个哨所有通信联系的...原创 2021-12-16 15:03:35 · 110 阅读 · 0 评论 -
图论:最小花费
在nn个人中,某些人的银行账号之间可以互相转账。这些人之间转账的手续费各不相同。给定这些人之间转账时需要从转账金额里扣除百分之几的手续费,请问AA最少需要多少钱使得转账后BB收到 100 元。输入格式第一行输入两个正整数n,mn,m,分别表示总人数和可以互相转账的人的对数。以下mm行每行输入三个正整数x,y,zx,y,z,表示标号为xx的人和标号为yy的人之间互相转账需要扣除z%z%的手续费 (z<100z<100)。最后一行输入两个正...原创 2021-12-16 15:06:08 · 174 阅读 · 0 评论 -
图论:香甜的黄油
农夫John发现了做出全威斯康辛州最甜的黄油的方法:糖。把糖放在一片牧场上,他知道 N 只奶牛会过来舔它,这样就能做出能卖好价钱的超甜黄油。当然,他将付出额外的费用在奶牛上。农夫John很狡猾,就像以前的巴甫洛夫,他知道他可以训练这些奶牛,让它们在听到铃声时去一个特定的牧场。他打算将糖放在那里然后下午发出铃声,以至他可以在晚上挤奶。农夫John知道每只奶牛都在各自喜欢的牧场(一个牧场不一定只有一头牛)。给出各头牛在的牧场和牧场间的路线,找出使所有牛到达的路程和最短的牧场(他将把糖放在原创 2021-12-16 15:04:55 · 101 阅读 · 0 评论 -
单源最短路的建图方式
一般用dijiesitela,bellman,SPFA,堆优化Dijkstra等方法bellman,SPFA在有负权图的情况下同样适用。通常情况下:SPFA算法优于bellman和dijiesitela 堆优化Dijkstra算法优于dijiesitela, SPFA算法十分不稳定,使用有风险,但算法十分简单,做题时可以先尝试一下该算法,被卡的话在使用其他算法。下面是我做过的一些题,可以供大家参...原创 2021-12-16 15:00:42 · 341 阅读 · 0 评论 -
图论:最优乘车
HH城是一个旅游胜地,每年都有成千上万的人前来观光。为方便游客,巴士公司在各个旅游景点及宾馆,饭店等地都设置了巴士站并开通了一些单程巴士线路。每条单程巴士线路从某个巴士站出发,依次途经若干个巴士站,最终到达终点巴士站。一名旅客最近到HH城旅游,他很想去SS公园游玩,但如果从他所在的饭店没有一路巴士可以直接到达SS公园,则他可能要先乘某一路巴士坐几站,再下来换乘同一站台的另一路巴士,这样换乘几次后到达SS公园。现在用整数1,2,…N1,2,…N给HH城的所有的巴士站编...原创 2021-12-16 15:07:16 · 490 阅读 · 0 评论