洛谷题目传送门 差分约束模板题,等于双向连0边,小于等于单向连0边,小于单向连1边,我太蒻了,总喜欢正边权跑最长路...... 看遍了讨论版,我是真的不敢再入复杂度有点超级伪的SPFA的坑了 为了保证复杂度,需要缩点后用拓扑排序统计答案.首先全相等的点本质上是相同的,可以缩到一起,所以先来一波Tarjan把0环全缩起来.接着再考虑边权为1的边.如果这时候还出现了环(包括缩点以后的自环),一定是不存在方案的,这是可以用拓扑排序判断.否则,就是个DAG,拓扑排序也可以直接计算出答案. 统计答案要注意…
题目传送门 BICIKLI 题意翻译 给定一个有向图,n个点,m条边.请问,1号点到2号点有多少条路径?如果有无限多条,输出inf,如果有限,输出答案模10^9的余数. 两点之间可能有重边,需要看成是不同的路径. 题目描述 A bicycle race is being organized in a land far, far away. There are N town in the land, numbered 1 through N. There are also M one-way ro…
考场上看错题,没什么好说的. 然而它就是一个大板子. 发的题解勉强还能看.但是我还想再讲讲. 题目的表述是,如果从A能直接或间接到B,那么就不能同时轰炸A和B. 那么我们从图里随便拽出一条有向路径,从这条路径中随意挑2个点AB,那么要么能从A到B要么从B到A 那么你任意挑出的这两个点只要不是同一个点那么就不能同时轰炸. 带下划线的那一段有什么用呢?它的正确性是显然的. 我所说的“有向路径”没有加任何附加限制,所以可以包括环,环上转几圈就可能出现同一个点呗. 我们考虑单纯的一个环.那么它上的每一个…
题目大意: 给你一个关系图,判断是否合法.每个人都有师父和徒弟,可以有很多个: 若A是B的师父,B是C的师父,则A也算C的师父. 不合法:  1) . 互为师徒:(有回路)  2) .你的师父是你徒弟的徒弟,或者说你的徒弟是你师父的师父.(出现回路) 思路: 判断有向图中是否存在回路或至少3元环: 此题至少有三种做法,此处更新拓扑排序的做法: 解题方法: 一:拓扑排序: 1) . 统计每个点的入度: 2) . 将入度为0的点加入队列: 3) . 出去队首元素,将此元素所连接的点入度减一,若此后入…
传送门 Problem Description 有N个比赛队(1<=N<=500),编号依次为1,2,3,....,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前.现在请你编程序确定排名. Input 输入有若干组,每组中的第一行为二个数N(1<=N<=500),M:其中N表示队伍的个数,M表示接着有M行的输入数据.接下来的M行数据中,每行也…
最近刷了几题拓扑排序的题,记录一下拓扑排序 在有向图中,并且按照一定的规则(题目所给的规则)排序.如果图中出现了有向环的话就无法排序了. int gap[maxn][maxn];//记录下有向边 int topo[maxn], c[maxn], t;//topo数组用来保存最后的排序结果, //c数组用来判断是否有访问过或者成环 //t 用来记录当前topo数组的下标值 bool dfs(int u){ c[u] = -;//标记当前访问点 ; v<=n; v++) if(gap[u][v]){…
#include <cstdio> #include <cstring> #include <queue> #include <vector> #include <stack> #include <algorithm> #define MAXN 2000+10 #define MAXM 400000 #define INF 1000000 using namespace std; vector<int> G[MAXN];…
题目 Output: standard output Time Limit: 1 second Memory Limit: 32 MB John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task is only possible if other tasks have already been executed. Input The input will co…
摘自:https://blog.csdn.net/qq_35644234/article/details/60578189 <图论算法> 1.拓扑排序的介绍 对一个有向无环图(Directed Acyclic Graph简称DAG)G进行拓扑排序,是将G中所有顶点排成一个线性序列,使得图中任意一对顶点u和v,若边(u,v)∈E(G),则u在线性序列中出现在v之前. 拓扑排序对应施工的流程图具有特别重要的作用,它可以决定哪些子工程必须要先执行,哪些子工程要在某些工程执行后才可以执行.为了形象地反…
题面:洛谷传送门 BZOJ传送门 标签里三个算法全都是提高组的,然而..这是一道神题 我们把这道题分为两个部分解决 1.找出所有咒语机两两之间的包含关系 2.求出咒语机的最长上升序列 我们假设咒语机$a,b$满足$a\in b$ 如果这个条件不成立,说明存在一个串$S$,$a$能输出,$b$不能输出 一个咒语机能产生的字符串可能是无限长的,直接枚举字符串肯定不行 考虑转化问题 我们构造另外一个图,图中每个点是一个二元组$(x,y)$ 我们暴力枚举咒语机$a$中的一个元件$x$,$b$中的一个元件…