
图论
文章平均质量分 67
zhk1211
这个作者很懒,什么都没留下…
展开
-
题解 P5022 【旅行】
小 Y 是一个爱好旅行的 OIer。她来到 X 国,打算将各个城市都玩一遍。小Y了解到, X国的 nnn 个城市之间有 mmm 条双向道路。每条双向道路连接两个城市。 不存在两条连接同一对城市的道路,也不存在一条连接一个城市和它本身的道路。并且, 从任意一个城市出发,通过这些道路都可以到达任意一个其他城市。小 Y 只能通过这些 道路从一个城市前往另一个城市。小 Y 的旅行方案是这样的:任意选定一个城市作为起点,然后从起点开始,每次可 以选择一条与当前城市相连的道路,走向一个没有去过的城市,或者沿着第一.原创 2020-05-17 13:34:51 · 1156 阅读 · 2 评论 -
题解 P2296 【寻找道路】
在有向图 GGG 中,每条边的长度均为 111,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件:路径上的所有点的出边所指向的点都直接或间接与终点连通。在满足条件 111 的情况下使路径最短。注意:图 GG 中可能存在重边和自环,题目保证终点没有出边。请你输出符合条件的路径的长度。这道题,我们考虑哪些点能够到达终点,问题等价于:反向建边后,终点能到达哪些点。void dfs(int x){ h[x]=true; for(auto i:E[x]) if(!h.原创 2020-05-17 13:01:20 · 433 阅读 · 2 评论 -
题解 P2052 【[NOI2011]道路修建】
首先对于一棵树,他肯定是一个连通图。所以,对于一条边 (x,y)(x,y)(x,y),xxx 连的节点个数 −-− yyy 连的节点个数 === ((( nnn −-− yyy 连的节点个数 ))) −-− yyy 连的节点个数因为这张图是连通的,所以所有节点不在 xxx 那端,就在 yyy 那端。我们回到树,我们可以 O(n)O(n)O(n) 的时间遍历一遍树,并求出 sizesizesize。大家可以看看我的代码#include <bits/stdc++.h>using name原创 2020-05-16 10:09:27 · 453 阅读 · 1 评论 -
题解 P3627 [APIO2009]抢掠计划
Siruseri 城中的道路都是单向的。不同的道路由路口连接。按照法律的规定,在每个路口都设立了一个 Siruseri 银行的 ATM 取款机。令人奇怪的是,Siruseri 的酒吧也都设在路口,虽然并不是每个路口都设有酒吧。Banditji 计划实施 Siruseri 有史以来最惊天动地的 ATM 抢劫。他将从市中心出发,沿着单向道路行驶,抢劫所有他途径的 ATM 机,最终他将在一个酒吧庆祝...原创 2020-05-02 17:15:04 · 630 阅读 · 2 评论 -
题解 P2812 【校园网络【[USACO]Network of Schools加强版】】
前置知识:强联通分量分析这道题的话,我们先考虑缩短。不会缩点的可以看一下我的文章既然我们缩好点了,那么整张图变成了一个 DAGDAGDAG(有向无环图)这样就好处理了。对于问题 A我们发现既然这整张图是 DAGDAGDAG,那么答案显然为入度为 000 的点的个数对于问题 B我们发现这整张图是 DAGDAGDAG。我们要把它变成连通图。连通图需要满足:没有入度...原创 2020-05-02 11:30:09 · 177 阅读 · 0 评论 -
题解 P2746 【[USACO5.3]校园网Network of Schools】
一些学校连入一个电脑网络。那些学校已订立了协议:每个学校都会给其它的一些学校分发软件(称作“接受学校”)。注意即使 BBB 在 AAA 学校的分发列表中,AAA 也不一定在 BBB 学校的列表中。你要写一个程序计算,根据协议,为了让网络中所有的学校都用上新软件,必须接受新软件副本的最少学校数目(子任务 A)。更进一步,我们想要确定通过给任意一个学校发送新软件,这个软件就会分发到网络中的所有学校...原创 2020-05-01 22:34:10 · 370 阅读 · 0 评论 -
题解 P4171 【[JSOI2010]满汉全席】
满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在数量繁多的菜色之中。由于菜色众多而繁杂,只有极少数博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过专家认证的满汉全席,也是中国厨师最大的荣誉之一。世界满汉全席协会是由能够料理满汉全席的专家厨师们所组成,而他们之间还细分为许多不同等级的厨师。为了招收新进的厨师进入世界满汉全席协会,将于近日举办满汉全席大赛...原创 2020-04-18 10:43:05 · 497 阅读 · 6 评论 -
算法笔记——2-SAT
其实这个东西跟并查集有点异曲同工。如果要满足 ax=0/1a_x=0/1ax=0/1 或 ay=0/1a_y=0/1ay=0/1 的话。这个东西就跟食物链差不多了。我们先开 222 倍空间。fif_ifi 表示 ai=0a_i=0ai=0fi+nf_{i+n}fi+n 表示 ai=1a_i=1ai=1所以我们就开始连边。连完边以后,我们就可以开始跑强联通分量。我们发现在...原创 2020-04-17 18:12:52 · 309 阅读 · 2 评论 -
题解 P4782 【【模板】2-SAT 问题】
有 nnn 个布尔变量 x1x_1x1 ∼xn\sim x_n∼xn ,另有 mmm 个需要满足的条件,每个条件的形式都是 「xix_ixi 为 true / false 或 xjx_jxj 为 true / false」。比如 「x1x_1x1 为真或 x3x_3x3 为假」、「x7x_7x7 为假或 x2x_2x2 为假」。2-SAT 问题的目标是给每个变量赋值...原创 2020-04-17 18:13:58 · 350 阅读 · 5 评论 -
题解 P2002 【消息扩散】
有n个城市,中间有单向道路连接,消息会沿着道路扩散,现在给出n个城市及其之间的道路,问至少需要在几个城市发布消息才能让这所有n个城市都得到消息。前置知识:强联通分量分析会了强联通分量以后呢,我们可以开始写这道题了。首先这道题不是一个 DAGDAGDAG 我们应该先缩点,把这个图变成一个 DAGDAGDAG。变成 DAGDAGDAG 就好了,我们就可以记录每个点的入度,答案即为所有...原创 2020-04-12 11:37:14 · 368 阅读 · 0 评论 -
题解 P1262 【间谍网络】
前置知识:强联通分量分析会了强联通分量以后呢,我们可以开始写这道题了。首先这道题不是一个 DAGDAGDAG 我们应该先缩点,把这个图变成一个 DAGDAGDAG。变成 DAGDAGDAG 就好了,我们就可以记录每个点的入度,答案即为所有入度为 000 的点的值的和(值就是这个点内的所有人被收买的数额中的最小值(不会被收买钱数为 inf\infinf))。#include <...原创 2020-04-12 11:06:14 · 430 阅读 · 1 评论 -
题解 P3387 【【模板】缩点】
给定一个 nn 个点 mm 条边有向图,每个点有一个权值,求一条路径,使路径经过的点权值之和最大。你只需要求出这个权值和。允许多次经过一条边或者一个点,但是,重复经过的点,权值只计算一次。前置知识强联通分量拓扑排序没学过的同学可以学一下。分析我们可以先用强联通分量对图进行缩点,那么现在,这张图就是 DAGDAGDAG 了。我们再拓扑排序,然后就去 dpdpdp。dpdpdp 是...原创 2020-04-11 18:53:14 · 681 阅读 · 2 评论 -
算法笔记——拓扑排序
对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边<u,v>∈E(G),则u在线性序列中出现在v之前。通常,这样的线性序列称为满足拓扑次序(Topological Order)的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这个操作称之为拓扑排序。...原创 2020-04-11 18:47:51 · 377 阅读 · 5 评论 -
题解 P2341 【[USACO03FALL][HAOI2006]受欢迎的牛 G】
每头奶牛都梦想成为牛棚里的明星。被所有奶牛喜欢的奶牛就是一头明星奶牛。所有奶牛都是自恋狂,每头奶牛总是喜欢自己的。奶牛之间的“喜欢”是可以传递的——如果 AAA 喜欢 BBB,BBB 喜欢 CCC,那么 AAA 也喜欢 CCC。牛栏里共有 NNN 头奶牛,给定一些奶牛之间的爱慕关系,请你算出有多少头奶牛可以当明星。终于AC了!前置知识做这道题需要知道 强联通分量 不会的可以学一下。分...原创 2020-04-11 17:23:33 · 519 阅读 · 0 评论 -
算法笔记——强连通分量&缩点
强联通分量(Strongly Connected Components):有向图的极大强连通子图。为了搞清楚SCC是怎么回事,我们得先明白有向图中的 444 种边。A. 树枝边:DFS树上的边,即指向未访问过节点的边B. 前向边:指向DFS树中子树中节点的边C. 后向边:指向DFS树中父亲的边D. 横叉边:其他边,即指向DFS树中非子树的边我们需要维护 222 个东西一个是 ...原创 2020-04-10 10:17:28 · 1075 阅读 · 8 评论 -
题解 P6268 【[SHOI2002]舞会】
题目链接这道题就是二分图的模板,答案 === 所有点数 −-− 二分图的最大匹配。#include <bits/stdc++.h>using namespace std;typedef long long ll;template<typename T>inline void read(T &FF){ T RR=1;FF=0;char CH=getc...原创 2020-04-06 23:25:27 · 454 阅读 · 0 评论 -
题解 P3916 图的遍历
这道题可以用有向图 dpdpdp,不断去更新答案。#include<bits/stdc++.h>using namespace std;typedef long long ll;template<typename T>inline void read(T &FF){ T RR=1;FF=0;char CH=getchar(); for(;!isdigit...原创 2020-04-06 23:21:10 · 361 阅读 · 0 评论 -
题解 P5663 【加工零件【民间数据】】
博客园体验更佳讲讲我的做法确定做法首先,看到这道题,我直接想到的是递归,于是复杂度就上天了,考虑最短路。如何用最短路首先,看一张图我们该如何解决问题?问题:333做555阶段的零件111要不要做呢?其实,实质就是看333到111有没有长度为555的路径。问题:333做777阶段的零件111要不要做呢?其实,实质就是看333到111有没有长度为777的路径。问题:3...原创 2020-04-05 11:54:05 · 556 阅读 · 0 评论