08 2024 档案

摘要:最大流 题目要求:给出n点 m边 src sink 然后每条边有 u v capacity 求最大流 题目链接P3376 【模板】网络最大流 EK(Edmonds–Karp)算法: \[\begin{align} & \color{Red}时间复杂度O(nm^2) \ & \color{Red}空 阅读全文
posted @ 2024-08-17 18:12 phrink 阅读(8) 评论(0) 推荐(0) 编辑
摘要:[P2740 USACO4.2] 草地排水Drainage Ditches) 大意:网络流模板 做法:EK增广路 #include <cstdio> #include <queue> #include <deque> #include <stack> #include <map> #include 阅读全文
posted @ 2024-08-17 18:10 phrink 阅读(3) 评论(0) 推荐(0) 编辑
摘要:最短路 弗洛伊德:全源最短路: DP:dp[i][j]=min(dp[i][j],dp[i][k]+dp[k][j])#include <cstdio> #include <algorithm> #include <iostream> #include <c 阅读全文
posted @ 2024-08-16 22:10 phrink 阅读(14) 评论(0) 推荐(0) 编辑
摘要:2-Sat \[\begin{align*} &\LARGE\color{Red}大意:\ &有n个数a_i,m个约束条件都需要满足\ &条件形如(i,a,j,b) \quad a_i=a \ \text{or} \ a_j=b\\\ &\LARGE\color{Red}思路:\ &让a 阅读全文
posted @ 2024-08-16 20:41 phrink 阅读(4) 评论(0) 推荐(0) 编辑
摘要:P3388 【模板】割点 Note:图可能不联通,因此每次tarjan都要更新root #include <cstdio> #include <stack> #include <cmath> #include <algorithm> #include <iostream> #include <cst 阅读全文
posted @ 2024-08-16 20:38 phrink 阅读(3) 评论(0) 推荐(0) 编辑
摘要:[P2746 USACO5.3] 校园网Network of Schools 大意:一个图 可能有环 a:求deg入度为0的点的个数 b:至少加多少条边让图所有点可以互相到达 思路:看代码 #include <cstdio> #include <queue> #include <deque> #in 阅读全文
posted @ 2024-08-16 20:34 phrink 阅读(3) 评论(0) 推荐(0) 编辑
摘要:P5782 [POI2001] 和平委员会 大意:n个集合 每个集合有两个点i,i+1 一共2n个点 每个集合选一个点到另一个空集 S 里面 有m个约束条件 i和j不能在一起 求可行的集合S 思路:2-sat 对i j而言 建图(i,j邻居) 和(j,i的邻居),邻居就是他们所属的集合的另一个点 然 阅读全文
posted @ 2024-08-15 17:36 phrink 阅读(15) 评论(0) 推荐(0) 编辑
摘要:P4171 [JSOI2010] 满汉全席 - 洛谷 大意:n个点 m个条件 形如m1,h32,满足n个条件 思路:2-sat 让m=0,h=1 ,然后转换为i m j h的建图,注意傻逼题目的数字可能是多位数 不能直接x[1]-'0' #include <cstdio> #include <sta 阅读全文
posted @ 2024-08-15 16:59 phrink 阅读(7) 评论(0) 推荐(0) 编辑
摘要:两种算法Prim and Kruskal Prim: 使用链式前项星 从根节点root开始加点直到加完所有点 dist[u] 表示从已经包含在 MST 中的节点到节点 u 的最小边权值 #include <cstdio> #include <queue> #include <deque> #incl 阅读全文
posted @ 2024-08-15 00:14 phrink 阅读(8) 评论(0) 推荐(0) 编辑
摘要:P3387 【模板】缩点 大意:n个图,m条边,每个点都有值a[i],求路径经过的点权值之和最大 思路:因为会出现环 Tarjan 求scc 记录din dout 然后拓扑排序,dp[v]是经过v点的最大值,每经过一个点就记录经过他的最大值 然后取max #include <cstdio> #inc 阅读全文
posted @ 2024-08-11 00:03 phrink 阅读(5) 评论(0) 推荐(0) 编辑
摘要:[P2812 校园网络【USACO]Network of Schools加强版 大意:1.图G=(V,E)选几个点可以到达所有的点 2.连多少条边可以让任意一个点出发到达其他所有点1 思路:1.Tarjan 跑一遍求SCC 那些出度为0的点就是出发的所有点 即din0的点的数量 2.计算dout0的 阅读全文
posted @ 2024-08-10 23:11 phrink 阅读(10) 评论(0) 推荐(0) 编辑
摘要:[P2341 USACO03FALL / HAOI2006] 受欢迎的牛 G 大意:其他所有点通过其他的scc到达图中存在的某个scc,那么输出这个scc的点的数量 思路:Tarjan求SCC,然后看每个scc的出度dout,如果有两个scc的dout=0,说明这两个scc不能到达,不满足要求,否则 阅读全文
posted @ 2024-08-10 23:02 phrink 阅读(6) 评论(0) 推荐(0) 编辑
摘要:SCC做法:Tarjan 记录scc 然后根据SCC去重新建图 #include <cstdio> #include <stack> #include <algorithm> #include <iostream> #include <cstr 阅读全文
posted @ 2024-08-10 21:48 phrink 阅读(5) 评论(0) 推荐(0) 编辑
摘要:Codeforces Round 964 (Div. 4) A送分 B 大意:两个人两张牌 随机翻 求a翻出来的牌比b大的可能 #include <cstdio> #include <cmath> #include <algorithm> #include <iostream> #include < 阅读全文
posted @ 2024-08-08 14:12 phrink 阅读(58) 评论(0) 推荐(1) 编辑
摘要:【牛客】河南萌新联赛2024第(四)场:河南理工大学 不按顺序写: D: 题目大意:给n个数字,判断是不是素数 思路:注意262144K=256MB N=1e8跑一个欧拉筛 然后不用二分,新建一个is__prime数组记录就好了 O(1)的判断 #include<iostream> #include 阅读全文
posted @ 2024-08-08 13:55 phrink 阅读(57) 评论(0) 推荐(0) 编辑
摘要:1583Problem - B - Codeforces 题目大意:n个点的无根树 给出m个限制条件 (a,c,b)在a到b路径上不能存在c点,求任意一种可能的树的所有边 注意数据范围:1<m<n<1e5 这说明了最多有n-1个限制条件 这说明至少有一个点不存在限制条件 即这个点可以作为根节点roo 阅读全文
posted @ 2024-08-04 22:58 phrink 阅读(12) 评论(0) 推荐(0) 编辑
摘要:CF1822F-Problem - F - Codeforces 题目大意:无根树的每条边为k,定义操作:移动根节点为把当前的根ROOT移动到相邻节点,每次代价为c, 定义成本=从ROOT出发到达的最长的路径的长度,利润=成本-代价,求利润最大值 \[\begin{align} &\huge\col 阅读全文
posted @ 2024-08-04 21:44 phrink 阅读(11) 评论(0) 推荐(0) 编辑
摘要:题目链接:P3398 仓鼠找 sugar - 洛谷 | (luogu.com.cn) 题目大意:判定一棵树上的两条边是否相交 Tag: [LCA] [树上两点间距离的计算] [如何判断与点在某条路径上] 思路: \[\begin{align} &1.建图\ &2.\text{dfs}然后\ 计算出 阅读全文
posted @ 2024-08-04 21:37 phrink 阅读(33) 评论(0) 推荐(0) 编辑
摘要:题目链接https://www.luogu.com.cn/problem/P5908 题目大意: \[\begin{align*} & 给定n个点构成一颗树 每条边val=1\ & 求从根节点Root=1开始 \quad 其它所有点v到Root的距离\mathrm{dis(v,Root)} <=\ 阅读全文
posted @ 2024-08-04 21:37 phrink 阅读(7) 评论(0) 推荐(0) 编辑
摘要:LCA最近公共祖先 (1) rootQLCA(a,b)给出一个表格 最近公共祖先 朴素算法 倍增算法 Tarjan算法 树链剖分 数据结构 fa[u],de 阅读全文
posted @ 2024-08-02 16:29 phrink 阅读(3) 评论(0) 推荐(0) 编辑
摘要:【模板】树的直径(dfs &amp; dp)树的直径 给定n个点 n-1条边 和每条边的val 输出直径的大小和 直径上的点的序号 input: 8 1 2 2 1 3 1 1 5 10 2 4 3 4 6 4 3 7 5 7 8 2 output: 19 6 4 2 1 5 法1.DFS 思路:跑两遍dfs 第一次求出一个端点c1,第二次求 阅读全文
posted @ 2024-08-01 20:33 phrink 阅读(21) 评论(0) 推荐(0) 编辑
摘要:介绍5种存图的方法 1.邻接矩阵 const int N =1e3+9; int G[N][N];//G[i][j]即val(i->j) void dfs(int u){ vis[u] = 1; for(int v=1 ; v<=n ; ++v){ if(G[u][v]!=0){ printf("% 阅读全文
posted @ 2024-08-01 19:03 phrink 阅读(3) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示