随笔分类 -  图论

摘要:题目链接 链接 翻译 给你 n 个向量, 每个向量都是 m 维的,在他们之间你可以做任意次数的模 2 加法,用 T 表示你能用这些向量得到的向量, 然后 问你用 n 个向量中最少多少个向量就已经足够表示出 T 了,设这个最少用的向量集合为 S阅读全文
posted @ 2021-02-15 15:42 AWCXV 阅读(73) 评论(0) 推荐(0) 编辑
摘要:题目链接 链接 翻译 让你在 n 个点上放老师,使得这 n 个点任意两个点之间都有路径。 但是所给的路径要激活才能用,而激活的条件就是路径连接的两个点中,有一个点放了老师。 当然一条路径不能两个端点都放老师,不然他们会打架 2333 输出任意一个合法的方案即可。 题解 随便找一个没染 阅读全文
posted @ 2021-01-18 09:52 AWCXV 阅读(78) 评论(0) 推荐(0) 编辑
摘要:题目链接 点我呀 翻译 你是小 A 的管家,小 A 要从点 1 到点 n,点与点之间的边(有向边)有黑色(0)和白色(1)两种, 你可以给每个点涂色 (黑色/白色)。 黑色的点,只能沿着黑色的边接着走,白色的点同理,即如果 x 是黑色的,那么你接下来只能沿着边 \ 阅读全文
posted @ 2020-09-10 22:16 AWCXV 阅读(243) 评论(0) 推荐(1) 编辑
摘要:题目链接 点我呀 翻译 给你一个 n 个节点 m 条边的图,但是有一些边的方向还没有确定。 问你能否将其中没有确定方向的边确定了,使得最后形成的整张图没有环。 题解 一说就会做的题。 先将已经确定了方向的边作为图的边,然后在这个有向图的基础上跑拓扑排序。 记录下每个节点在拓扑排序中的 阅读全文
posted @ 2020-07-20 22:57 AWCXV 阅读(195) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 题意 【题解】 其实这道题感觉有点狗。 思路大概是这样 先让所有的点都在1集合中。 然后随便选一个点x,访问它的出度y 显然tag[y]=2 因为和他相连了嘛 然后其他没有和x相连的点显然只能和x在同一个集合中 所以其他1集合的点你会发现你想改也没法改, 阅读全文
posted @ 2019-09-30 14:44 AWCXV 阅读(286) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 【题解】 枚举每一条边(x,y) 然后再枚举y的出度z 看看g[x][z]是否等于1(表示联通) 如果等于1就说明找到了一个三元环,则尝试用它们的出度和 6更新答案就好。 时间复杂度O(M N) 【代码】 cpp include define rep1( 阅读全文
posted @ 2018-10-03 06:43 AWCXV 阅读(102) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 DP 设f[i][j]表示前i个操作,已经匹配了的点的状态集合为j的方案数 对于+操作 有两种情况。 1.这条边作为匹配的边 2.这条边没有作为匹配边 f[i][j] = f[i 1][j (u,v)] + f[i 1][j] 阅读全文
posted @ 2018-07-31 09:56 AWCXV 阅读(192) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 注意这k个序列每个都是排列。 如果在每个序列中都满足y出现在x之后的话。 那么我们从x连一条有向边至y (有一个序列不满足就不连 (这就表明最后的序列中x可以紧接着y 最后显然会形成一个有向无环图。 在这个图上求最长链就好了。 阅读全文
posted @ 2018-07-16 15:17 AWCXV 阅读(148) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 首先。 这张图是无向无权图。 因此任意两点之间的最短路可以通过N^2的bfs轻易算出来。 即得到d[N+10][N+10] 考虑s[0] t[0]的最短路以及s[1] t[1]的最短路 如果d[s0][t0] l0或d[s1][ 阅读全文
posted @ 2018-07-14 15:55 AWCXV 阅读(97) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 我们可以只想那个均值最小的环。 我们不知道那个环由哪些边构成 但我们可以把每条边都减掉mid 那个环受到的影响是什么呢? 如果这个均值最小的环的均值没有mid那么大。 那么这个环就会变成负权环(因为$环的均值 【代码】 cpp 阅读全文
posted @ 2018-06-06 08:47 AWCXV 阅读(153) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 Tarjan算法强连通缩点 。 最后出度为0的点。 如果只有一个。 那么这个“大点”所包含的点的个数就是答案了。 【代码】 cpp / n个点,m条有向边. 把有向图G的环进行缩点; 缩完之后的图存在vector g[N]里面; 阅读全文
posted @ 2018-03-10 20:17 AWCXV 阅读(140) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 p[i] = p[p[i]]一直进行下去 在1..n的排列下肯定会回到原位置的。 即最后会形成若干个环。 g[i]显然等于那个环的大小。 即让你形成若干个环。 每个环的大小只能为A或B 则相当于问A x+B y=n是否有解。 可 阅读全文
posted @ 2018-02-18 20:30 AWCXV 阅读(137) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 这一题和这一题很像 ( "链接" ) 会发现如果a[i]!=b[i]那么就按下i就好了。 然后改变和他相邻的点。 此后a[i]再也不可能和b[i]相同了。 (其他点无论怎么按b[i]只会变大) 但是这样直接暴力写会超时 O(N^ 阅读全文
posted @ 2018-02-01 11:56 AWCXV 阅读(106) 评论(0) 推荐(0) 编辑
摘要:【链接】 我是链接,点我呀:) 【题意】 在这里输入题意 【题解】 如果有环 ->直接输出-1 (拓扑排序如果存在某个点没有入过队列,说明有环->即入队的节点个数不等于n 否则。 说明可以做拓扑排序。 →是一个有向无环图。 那么定义f[x][y] 表示x节点前面的某条路径中,字母y出现的最多次数是多 阅读全文
posted @ 2018-02-01 01:55 AWCXV 阅读(179) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 先搞一条a到b的路径 a c x3 x4 x5....xn 2 d b 然后第二个人的路径可以这样 c a x3 x4 x5...xn 2 b d 也即加两条边[a,x3] [xn 2,b] 所以最少只需要n+1条边。 (尽量让 阅读全文
posted @ 2018-01-26 15:52 AWCXV 阅读(119) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 处理出起点到任意点的最短路以及最短路条数= dis[0][i],cnt[0][i] 然后 把所有的边反向 处理出在反图上终点到任意点的最短路以及最短路条数= dis[1][i],cnt[1][i] dis数组的初值为 1,表示无 阅读全文
posted @ 2018-01-24 16:29 AWCXV 阅读(190) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 感觉最大度数|1就是最多需要的个数了。 就贪心一下。 然后模拟染色的过程就可以了。 (贪心染色就可以了 (看看周围哪个颜色没有,就用它) k在dfs之前忘记判断是不是奇数了。。。。 以及忘记清空g 【代码】 cpp includ 阅读全文
posted @ 2018-01-10 13:27 AWCXV 阅读(163) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 旋转和翻转,会发现。 如果可以顺着某个方向一直放的话。 总是能转换成往下或者往右连的。 则只要能够出现一个连接顺序的循环,则总是有解的。 转化成图论模型 如果一个正方形有A+ 另外一个正方形有A B+C+D 那么从A+连3条边分 阅读全文
posted @ 2017-11-17 20:47 AWCXV 阅读(196) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 入度减去出度个数为1的点和为 1的点各有1个,然后其他点入度减去出度为0 或者全都是入度为0的点即可。 【代码】 cpp include using namespace std; const int N = 300; int n 阅读全文
posted @ 2017-11-17 06:43 AWCXV 阅读(153) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 最后肯定会形成若干个环的。 把最大的两个环合在一起就好。 每个环贡献: 假设x=环的大小 x x 注意int的溢出 【代码】 cpp include using namespace std; const int N = 1e5; 阅读全文
posted @ 2017-11-10 11:34 AWCXV 阅读(118) 评论(0) 推荐(0) 编辑

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