-----图论
litmxs
博客内容如有错误,还望指正
展开
-
Save your cats Aizu - 2224 最小生成树
题目链接:Save your cats Aizu - 2224n个木桩,给出他们的坐标,一些木桩之间连着m个篱笆,组成了多个封闭区域,每个封闭区域里面有猫,要将猫救出来,至少拆多长的篱笆也就是n个顶点、m条边的图,要去掉所有环,去掉的边的权值至少为多少?求图的最大生成树,总权值-生成树的总权值就是答案。既然去掉的最小权值不好求,那就求留下的最大权值。#include<iostream>#inclu原创 2017-03-16 18:00:46 · 458 阅读 · 0 评论 -
牛客网暑期ACM多校训练营(第一场)D. Two Graphs 图论 枚举全排列
题目链接:D. Two Graphs题目大意两张图G1和G2, 最多只有8个节点, 两个节点之间最多有一条边, 两张图节点个数都为n, 边数为m1和m2 求由多少种方案, 从G2中选出m1条边, 使得G1和G2重构思路枚举n个节点的全排列, 就是将G2中节点和G1的节点一一对应起来, 一共由n!中对应方案, 判断每一种方案是否可行, 如果可行, 那将方案用一个unsigned l...原创 2018-07-19 19:09:03 · 405 阅读 · 0 评论 -
Codeforces Round #378 (Div. 2) F. Drivers Dissatisfaction图论 树链剖分 最小生成树+最近公共祖先+倍增法或树链剖分 模板
题目链接:F. Drivers Dissatisfaction题目大意无向图有n个节点,m条边,每条边有wiwiw_i(边的权值),cicic_i(让wiwiw_i减少1需要花费ci)ci)c_i)两个属性 现在有预算S,可以用这些钱让一些边的权值减小(边的权值可以减少到0甚至负数) 设计一个方案,减小某些边的权值,使得这张图的最小生成树的权重和最小 输出最小生成树的权值和,以及最小...原创 2018-07-12 13:03:39 · 257 阅读 · 0 评论 -
Aragorn's Story HDU - 3966 树链剖分 点权 区间更新 单点查询 模板
题目链接:HDU - 3966题目大意一棵树,结点数为n(n&lt;=5e5),有两种操作,将结点c1和c2路径上所有结点的权值增加或减少k,查询结点c的权值思路树链剖分,用BIT(树状数组)进行更新和查询思路 Result Time(ms) Mem(MB) Length Lang Accepted 967 16.7 244...原创 2018-07-18 09:36:58 · 166 阅读 · 0 评论 -
Query on a tree SPOJ - QTREE 树链剖分 模板
题目链接:Query on a tree题目大意一棵树,有n个节点n<=1e4, 有两种操作:1.求节点a和b之间路径的最大权值的边;2. 将边i的权值改为ti思路树链剖分,边的权值存在儿子节点上,线段树求区间值和修改代码#include <bits/stdc++.h>using namespace std;typedef long lon...原创 2018-07-17 16:35:50 · 151 阅读 · 0 评论 -
Educational Codeforces Round 46 (Rated for Div. 2) E. We Need More Bosses 图论 桥
题目链接: E. We Need More Bosses题目大意:一个无向图, n个节点, m条边,选择两个节点s和t, 使得从s到t所有路径中都出现的边的数量最大(从s到t无论怎么走都必须要经过这些边)思路无向图中,在两点间所有路径出现的边为无向图的桥, 将所有非桥边的权值设为0, 桥的权值设为1(即将边双联通分量缩成一个点),求得出的无向图最长路径,即为答案桥与割点定...原创 2018-07-09 13:46:11 · 266 阅读 · 0 评论 -
Codeforces Round #445 (Div. 2) D - Restoration of string 思维 图论
题目链接: D - Restoration of string题目大意给你一个字符串集合, 集合中每个字符串都是原字符串中作为子串出现次数最多的子串, 求出原字符串(如果有多个输出字典序最小的)思路因为集合中的所有字符串都是出现次数最多的子串, 所以它们在原串中出现的次数应该都是一样的, 而且因为要字典序最小, 所以出现的次数肯定都为1, 所以最后的字符串中肯定不能有其他子串出现超过一次 建一张有原创 2017-11-14 21:30:27 · 220 阅读 · 0 评论 -
Codeforces Round #442 (Div. 2) 877 E. Danil and a Part-time Job DFS序 线段树
题目链接: E. Danil and a Part-time Job题目大意一棵有根树, 每个节点可以是1或者0, 两种操作: 1. pow v: 将v节点的子树中所有节点的值反置(1变0, 0变1, 相当于异或1) 2. get v: 输出v节点的字数中1的个数 节点个数: 1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5, 操作次数: 1≤q≤2⋅1051 \leq原创 2017-10-26 00:10:18 · 238 阅读 · 0 评论 -
Strictly Positive Matrix CodeForces - 402E 强联通分量 模版
题目链接: CodeForces - 402E题目大意给你一个n*n的矩阵, 每个元素>=0, 可以对这个矩阵做任意次方的乘方操作, 求能不能的到一个所有元素>0的矩阵思路将这个矩阵看作图的邻接矩阵, 非零为有边, 那么对这个矩阵做乘方就相当于离散数学里面求传递闭包的方法嘛…最后的到的矩阵aija_{ij}为1表示原来图中ij有路径相连, 要整个矩阵都为1, 说明原图是强联通图, 也就是强联通分量为原创 2017-07-27 13:49:38 · 388 阅读 · 0 评论 -
HDU 6201 - transaction transaction transaction 最短路dij算法
题目链接: HDU 6120题目大意n个城市, n-1条道路, 给出每条道路的长度, 每公里路费1元, 第i个城市书的价格为pi, 一个商人, 从某个城市出发, 买一本书, 在到另一个城市卖出去, 求最多能赚多少钱思路建图, 最短路 设置一个超级源点S, 与每个城市建边, 权值为pi(这个城市书的价格), 和一个超级汇点T, 与每个城市建边, 权值为-pi, 再将有道路相连的城市建边, 权值为道路原创 2017-09-12 09:30:43 · 378 阅读 · 0 评论 -
Codeforces Round #425 (Div. 2) D. Misha, Grisha and Underground LCA模版
题目链接: Misha, Grisha and Underground题目大意给你一颗无根树 三个顶点f, s, t, 计算f到s的最短路径和f到t的最短路径的公共顶点个数 给你三个点a, b, c, 求如何将a, b, c对应到f, s, t, 使得上面描述的公共顶点个数最多, 输出最多的公共顶点个数思路将顶点1定义为树根, 求出所有顶点到树根的最短路长度depth[i] 那么两个顶点u,原创 2017-07-25 18:06:16 · 405 阅读 · 0 评论 -
Codeforces Round #423 D. High Load
题目链接: High Load题目大意要求件一棵树, n个节点, k个叶子, 要求叶子之间最远距离最小, 输出这个最小距离和这棵树的所有边思路两片叶子的距离等于两片叶子到最近公共祖先的距离的和, 两个叶子最近公共祖先为根节点, 并且深度和最大, 这两片叶子就是最远距离的叶子, 如果要最远距离最小, 那树的最大深度要尽可能小 所以最后树的形状应该是一个根节点, 根节点有k个分支, 除了根节点其他节点原创 2017-07-12 11:20:31 · 332 阅读 · 0 评论 -
POJ - 3281 Dining 最大流
题目链接: POJ - 3281题目大意n头牛, f种食物, d种饮料, 每头牛有若干种喜欢的食物和若干种喜欢的饮料, 每种食物或饮料只能使用一次, 求最多能让多少头牛同时吃上喜欢的一个食物和一个饮料思路建图, 最大流建图方法将每种食物f拆成两个节点f1, f2, 从f1向f2连一条容量为1的边, 以保证每个食物只能用一次饮料同样做拆分处理成d1, d2每个牛c也拆分成c1, c2, 从c1向原创 2017-07-02 16:52:36 · 288 阅读 · 0 评论 -
2018 Multi-University Training Contest 2 1003 Cover 图论 欧拉通路
题目链接: 1003 Cover题目大意一张无向图,n个节点,m条边,没有重边和自环,不一定连通,求最少多少条路径能覆盖这张图所有边,每条边只能被一条路径覆盖思路将图中每个联通块的奇点(度数为奇数的点)找出来,如果有两个或两个以下的奇点,则为欧拉图,可以一笔画,否则将从第三个奇点开始,将奇点们两两连接起来,让这张图变成欧拉图,求其欧拉通路,将后来新增的奇点连边删除后,得到的路径...原创 2018-07-26 09:55:44 · 147 阅读 · 0 评论