graph
Lzed
我好菜啊
展开
-
POJ 1797-Heavy Transportation(Dijkstra + 二分答案)
题目链接:http://poj.org/problem?id=1797 题意 每条路径都有一个最大负重值,求一条从起点到终点的路径使最小负重值最大 思路 对负重值进行二分,在Dijsktra的时候判断一下即可 代码#include <iostream> #include <cstring> #include <stack> #include <vector> #incl原创 2016-08-01 23:10:32 · 382 阅读 · 0 评论 -
Codeforces#374(div2)- C. Journey(二分答案+dp)
题目链接http://codeforces.com/contest/721/problem/C思路二分最多能够经过多少个点,然后dp判断 状态表示: d[i][j]d[i][j]:当前在第i个点,经过了j个点的最小距离 转移方程: d[i][j]=min(d[k][j−1]+w(i,k),d[i][j])d[i][j] = min(d[k][j - 1] + w(i, k), d[i][j]原创 2016-10-01 15:56:23 · 341 阅读 · 0 评论 -
Codeforces373D-Lakes in Berland(dfs)
题目链接http://codeforces.com/contest/723/problem/D思路先对格点图跑一遍dfs,对连通分量编个号,然后把边界的点排除掉,最后统计一下就好代码#include <iostream> #include <cstring> #include <stack> #include <vector> #include <set> #include <map> #inclu原创 2016-10-04 14:56:33 · 344 阅读 · 0 评论 -
Codeforces687A - NP-Hard Problem(二分图染色)
题目链接http://codeforces.com/contest/687/problem/A思路只需要将这个图二分染色,然后输出解即可代码#include <iostream> #include <cstring> #include <stack> #include <vector> #include <set> #include <map> #include <cmath> #include <原创 2016-11-08 20:51:48 · 240 阅读 · 0 评论 -
Codeforces723E - One-Way Reform(Euler回路)
题目链接http://codeforces.com/contest/723/problem/E思路首先基于下面两个事实: 1. 连通图度数为奇数的点一定为偶数个(每条边都能贡献2个度数,因此总度数一定为偶数,从而度数为奇数的点一定为偶数个) 2. Euler回路中所有点的入度都等于出度 这道题要求的就是所有边定向后入度等于出度的点,由此想到可以跑Euler回路,因为原图中存在度数为奇数的点,可原创 2016-10-07 16:08:33 · 291 阅读 · 0 评论 -
HDU3790-最短路径问题(最短路+dp)
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3790思路裸的最短路+dp 先跑一遍Dijkstra获得d[]数组,然后dp:f[v]代表节点v的最小花费,转移方程:f[v]={min(f[v],f[u]+p(u,v))|d[v]=d[u]+w(u,v)}f[v] = \{min(f[v], f[u] + p(u, v)) | d[v] = d[u]原创 2016-11-20 15:26:21 · 522 阅读 · 0 评论 -
POJ3683-Priest John's Busiest Day(2-SAT)
题目链接http://poj.org/problem?id=36832-SAT总结2-SAT的性质: 以下设x’为x的非 1. 对称性:即若x->y,则一定有y’->x’(原命题和逆否命题等价) 2. x和x’不能同时成立(即x和x’不能在同一个强连通分量之中) 3. 若选择了x,则x的所有后继结点都应被选择, 且x’不可选,则x’的所有前驱结点都不可选 算法 1. 对图跑一遍原创 2016-11-26 11:58:51 · 266 阅读 · 0 评论 -
Codeforces742C-Arpa's loud Owf and Mehrdad's evil plan(强连通分量+LCM)
题目链接http://codeforces.com/contest/742/problem/C思路C的题意当时没读懂= =其实就是求一个数x,使对图中的所有点,a出发经过x能到b,b再经过x能回到a。其实就是能成环首先判断无解的情况: 对于图中的所有点,有且仅有一条出边,那么如果能成环,那么将有且仅有一条入边,若不满足,则无解 有解情况讨论: 如果环为长度为k的奇环,那么得经过k(只能回到自己原创 2016-12-10 00:52:29 · 637 阅读 · 0 评论 -
Codeforces742E-Arpa’s overnight party and Mehrdad’s silent entering(构造+二分图染色)
题目链接http://codeforces.com/contest/742/problem/E思路二分图染色 建图: 首先,男女朋友之间肯定连一条无向边 然后,考虑相邻的三个人,他们之间必须有两种食物,即有两人之间颜色不同,我们考虑在2i和2i + 1之间连一条边,然后跑二分图染色,得到的结果就是可行解 这样建图并进行二分图染色后一定有解(因为对图中的每个连通块,首先点数为偶数:因为如果包含原创 2016-12-10 01:13:37 · 976 阅读 · 0 评论 -
Round C APAC Test 2017 Problem C. Evaluation(拓扑排序)
题目链接https://code.google.com/codejam/contest/6274486/dashboard#s=p2题意给定若干个等式,这些等式的顺序可以交换。 等式左边的值依赖于右边的值,要求判断等式是否合法。思路我们要解决的问题就是判断这些变量是否存在相互依赖的关系。 假如a = f(b, c)。那么a依赖于b和c,我们就从b和c分别连一条边到a。最后要判断的问题就是这个图是原创 2017-02-04 22:32:30 · 254 阅读 · 0 评论 -
Codeforces379F-New Year Tree(LCA)
题目链接http://codeforces.com/problemset/problem/379/F思路每次维护当前的直径d和直径的两个端点u,v。当新加入两个点x和y时,选择x或者y相同,因此只考虑x: 当x到u的距离大于原来的直径时,将v更新为x,并更新直径 当x到v的距离大于原来的直径时,将u更新为x,并更新直径 每次使用LCA在线维护直径代码#include <iostream> #i原创 2016-09-30 22:16:23 · 310 阅读 · 0 评论 -
POJ2449-Remmarguts' Date(K短路)
题目链接http://poj.org/problem?id=2449题意求一个有向图的给定起点和终点的K短路思路A* + SPFA A*算法的核心是估价函数f(n) = g(n) + h(n)的设计。 对于该题,设g(n)为当前点到起点的最近距离,h(n)为当前点到终点的最近距离,f(n) = h(n) + g(n)的第k大即为起点到终点的第K短路。 该题为有向图,于是先将所有边反向,从终点做原创 2016-09-02 21:29:27 · 278 阅读 · 0 评论 -
HDU2121-Ice_cream’s world II(不定根的最小树形图)
题目链接http://acm.split.hdu.edu.cn/showproblem.php?pid=2121思路因为根不确定,因此需要添加一个虚根结点,转为固定根节点的最小树形图。 对于虚根节点,添加权值(X)相同的边指向所有结点,权值相同为了保证每个节点都有机会作为真正的树根,并且X应略大,因大于所有边权之和,这样是为了和原图中的边区分开细节在记录真正的根的时候,记录的应该是边而不是结点,因原创 2016-08-27 11:02:21 · 338 阅读 · 0 评论 -
UVA10766-Organising the Organisation(生成树计数+Matrix-tree定理)
题目链接http://acm.hust.edu.cn/vjudge/contest/67265#problem/I题意给定一张图,并且确定根节点,求生成树的个数思路因为是无向图,所以哪个节点作为根节点都没有影响,因此题目转化为无向图的生成树计数 Matrix-tree定理: 对于图G,设D[G]为G的度数矩阵,A[G]为G的邻接矩阵,则C[G] = D[G] - A[G];并且生成树的个数 =原创 2016-08-28 11:56:38 · 330 阅读 · 0 评论 -
POJ2728-Desert King(最优比率生成树)
题目链接http://poj.org/problem?id=2728题意给定一张稠密图,每条边有花费w和长度l,要求图的一棵最优比率生成树,定义如下:对这棵树,sum(w) / sum(l)最小思路0-1规划问题 令条件x: sum(w) / sum(l) 不超过x,只需要二分一下x即可 那么问题就转化为了: sum(w) / sum(l) ≤ x 另g(x) = sum(w) - x * s原创 2016-08-30 12:05:02 · 277 阅读 · 0 评论 -
UVA11374-Airport Express(最短路+枚举)
题目链接http://acm.hust.edu.cn/vjudge/problem/22966思路因为商业线只能够选择一次,只需要枚举这K条商业线,设每次选中的一条商业A->B的起点为A,终点为B,则起点到A和B到终点必然选择的是经济线 因此只需要对起点和终点分别做一次dijkstra,设起点到A的时间为f(a), B到终点的时间为g(b),则T = f(a) + g(b) + T(a, b)细节原创 2016-08-22 11:57:41 · 273 阅读 · 0 评论 -
UVA11478-Halum(BellmanFord + 差分约束)
题目链接http://acm.hust.edu.cn/vjudge/problem/34651思路要求所有边的最小值最大, 可以二分答案,令所有边的权值均不小于x,对每条边a->b,其作用有:sum(a) - sum(b)。于是最后边的权值为sum(a) - sum(b) + w(a, b) ≥ x。即sum(b) - sum(a) ≤ w(a, b) - x,对所有的边都有这样的关系,于是得到了一原创 2016-08-25 09:16:55 · 255 阅读 · 0 评论 -
POJ1679-The Unique MST(次小生成树+最小瓶颈路 )
题目链接http://poj.org/problem?id=1679题意给定求一张图,判断它的最小生成树是否唯一思路只需求出该图的次小生成树,并且判断最小生成树和次小生成树权值和是否相同即可 那么问题就转化成了求次小生成树:先求出最小生成树,然后枚举剩下的m - n +1条边, 将其中一条边(u, v)加入MST中,这样必定u->v之间会形成回路,根据最小生成树的回路性质,回路中权值最大的那条边必原创 2016-08-26 09:20:09 · 286 阅读 · 0 评论 -
POJ3041-Asteroids(二分图匹配)
题目链接http://poj.org/problem?id=3041题意给定一个N*N的格子,里面有K个点,每次攻击的范围为1行或1列,要求用最少的攻击次数,覆盖掉所有的点 如图所示: 选择图中的两条线思路每个点可以选择横着攻击或者竖着攻击两种方式,于是将所有的横着攻击和竖着攻击看做两部分点集{u}和{v},则每个点对应着连接u中的某点和v中的某点的直线,如图所示: 则题目就变成了选择原创 2016-08-14 21:12:41 · 232 阅读 · 0 评论 -
Codeforces711D-Directed Roads(强连通分量+乘法原理)
题目链接http://codeforces.com/contest/711/problem/D思路这道题的输入很神奇,由输入可以得出一个结论就是每个点最多只会有一条出边,因此每个点最多在一个环中。 然后对于一个环比如1 -> 2 -> 3 -> 1,其方案数是23−2 2^3 - 2,然后可以发现,对每一个独立的环,若有x个点,那么方案数就是2x−22^x - 2 对所有环,由输入得到的性质,因原创 2016-09-23 20:46:25 · 313 阅读 · 0 评论 -
Codeforces715B-Complete The Graph(最短路)
题目链接http://codeforces.com/problemset/problem/715/B思路 先将所有边长为0的边看做断路,从T做一次最短路,得到g[],代表从T到所有点的最短路 从S开始做最短路,结果保存在d[]中,当遇到边长为0的边,设置其长度为L - g[v] - d[u],小于1的话设置为1 代码#include <iostream> #include <cstring> #in原创 2016-09-21 10:51:03 · 622 阅读 · 0 评论 -
Codeforces 764C - Timofey and a tree(dfs)
题意给一棵树,树上每个节点都有颜色,现在要求删掉一个点,在删掉这个点后,剩下的所有子树,每个子树上的所有点颜色相同。思路缩点。 我们将树上相连的,并且颜色相同的点缩成一个点。在缩点重新建图后,假设重新建图后有tot个点,那么一定要有一个点满足度为tot - 1(即这个点和其他所有点相连并且其他点互不相连)。代码#include <bits/stdc++.h>using namespace std;原创 2017-02-03 01:02:04 · 303 阅读 · 0 评论