随笔分类 -  LCA

摘要:给你一个图和三个点U,V,W 问你是否存在从U到V和从U到W的两条边不相交路径 先边双缩点 再每个连通分量搞LCA 最后LCA判 #include<bits/stdc++.h> using namespace std; #define INF 0xfffffff #define maxn 20002 阅读全文
posted @ 2019-04-15 19:31 Aragaki 阅读(350) 评论(0) 推荐(0)
摘要:把每个点的点权当做是W[i]-V[i] 题目一眼是最大权闭合子图 但是可能会有重边自环和环 需要先搞成简单图 再tarjan缩点 缩点后就是裸的最大权闭合子图 #include<bits/stdc++.h> using namespace std; typedef long long ll; con 阅读全文
posted @ 2019-03-30 23:11 Aragaki 阅读(255) 评论(0) 推荐(0)
摘要:Description Description 给一颗树,每个节点有个初始值 现在支持以下两种操作: 1. C i x(0<=x<2^31) 表示将i节点的值改为x 2. Q i j x(0<=x<2^31) 表示询问i节点到j节点的路径上有多少个值为x的节点 Input Input 第一行有两个整 阅读全文
posted @ 2018-06-06 18:04 Aragaki 阅读(186) 评论(0) 推荐(1)
摘要:..拿金了 没给学校丢脸 A ....SB题啊 比赛的时候都没看 裸的一个bitset前缀和 先开一个1e4*1e4的二维bitset数组 初始第i个数组的值为1 << i (即B[i]=1 B[i]<<=i) 很容易我们可以知道要单独翻转某一位而不去影响其他位的话 方法是唯一的 然后我们从可以后往 阅读全文
posted @ 2018-06-05 22:15 Aragaki 阅读(2307) 评论(2) 推荐(0)
摘要:A /*Huyyt*/ #include<bits/stdc++.h> #define mem(a,b) memset(a,b,sizeof(a)) #define pb push_back using namespace std; typedef long long ll; typedef uns 阅读全文
posted @ 2018-05-09 19:01 Aragaki 阅读(308) 评论(0) 推荐(0)
摘要:读入挂 基本模板 离线: 1 /*Huyyt*/ 2 #include<bits/stdc++.h> 3 #define mem(a,b) memset(a,b,sizeof(a)) 4 #define pb push_back 5 using namespace std; 6 typedef lo 阅读全文
posted @ 2018-05-07 16:15 Aragaki 阅读(295) 评论(0) 推荐(0)
摘要:Kosoraju SCC总数及记录SCC所需要的最少边情况 #include<cstdio> const int N = 300010; int scc_cnt = 0; int Case, n, m, i, x, y, cnt, use[N], g[2][N], nxt[2][N], v[2][N 阅读全文
posted @ 2018-04-24 21:12 Aragaki 阅读(321) 评论(0) 推荐(0)