
=====图论=====
yxg_123
这个作者很懒,什么都没留下…
展开
-
poj 3660 Cow Contest Flyod
题目链接:http://poj.org/problem?id=3660题意:给出牛之间的强弱关系,让你确定有多少头牛能够确定其排名。题解:就是求出每个点的入度和出度的和,如果是n-1,就可以确定排名 floyd代码:#include <iostream>#include <cstdio>#include <cstring>using namespace std;typedef long l原创 2017-03-03 21:40:51 · 273 阅读 · 0 评论 -
BZOJ 2763: [JLOI2011]飞行路线 最短路
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2763题意:题解:最短路,在转移dis的时候多开一维k就好了 dis[i][j]->dis[t][j]+e[i][t] dis[i][j]->dis[t][j+1] if j代码:#include <bits/stdc++.h>using namespace std;typedef l原创 2017-03-05 23:44:17 · 399 阅读 · 0 评论 -
Codeforces Gym 100733H Designation in the Mafia flyod
题目链接:http://codeforces.com/gym/100733/problem/H题意:给你每一个字符变成另外一个字符的花费 然后问你最小需要多少才能把这个字符串变成回文串题解:懂第三个样例,基本这道题就出来了(a->b->c) 注意要跑flyod,这个cost[x][y]不一定比cost[x][k]+cost[k][y]低代码:#include <bits/stdc++.h>us原创 2017-03-05 16:52:01 · 334 阅读 · 0 评论 -
hdu 1839 Delay Constrained Maximum Capacity Path 二分+最短路
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1839题意:有N个点,点1为珍贵矿物的采矿区, 点N为加工厂,有M条双向连通的边连接这些点。走每条边的运输容量为C,运送时间为D。 他们要选择一条从1到N的路径运输, 这条路径的运输总时间要在T之内,在这个前提之下,要让这条路径的运输容量尽可能地大。 一条路径的运输容量取决与这条路径中的运输容量最小的原创 2017-03-05 16:07:20 · 214 阅读 · 0 评论 -
hdu 3339 In Action 背包+flyod
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3339题意:给你一个图,每个点都有权值,然后让你派出多辆坦克,破环至少占权值一半的城市,派出坦克的代价就是从0点到那些城市的距离 求最少代价题解:点数很少,注意有重边 跑一发flyod,然后背包dp代码:#include <bits/stdc++.h>using namespace std;typ原创 2017-03-05 15:16:24 · 270 阅读 · 0 评论 -
cdoj 30 最短路 flyod
题目链接:http://acm.uestc.edu.cn/#/problem/show/30题意:题解:直接floyd代码:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(a,0,sizeof(a))#define MP make_pair#define PB pus原创 2017-03-05 14:40:53 · 269 阅读 · 0 评论 -
Codeforces Round #302 (Div. 2) D - Destroying Roads 图论,最短路
题目链接:http://codeforces.com/contest/544/problem/D题意:有n个城镇,m条边权为1的双向边 让你破坏最多的道路,使得从s1到t1,从s2到t2的距离分别不超过l1和l2题解:跑一发最短路,然后最后留下的图肯定是出了s1-t1,s2-t2这两条路之外,其他路都被删除了 那么我们枚举重叠的道路就好了【可能反向】代码:#include <bits/stdc+原创 2017-03-05 14:12:25 · 375 阅读 · 0 评论 -
hdu1874 畅通工程续 spfa/迪杰斯特拉
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874题意:题解:卿学姐视频: http://www.bilibili.com/video/av4224493/代码:spfa:#include <bits/stdc++.h>using namespace std;typedef long long ll;#define MS(a) memset(原创 2017-03-05 12:44:23 · 300 阅读 · 0 评论 -
hdu1863 畅通工程 Kruskal/Prim
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1863题意:题解:Kruskal是按照边权排序,每次选择一条最小的边,判断这条边的两个端点是否在同一个集合,用并查集维护 Prim是随便选择一个点作为当前集合,找到与这个集合相连的边中最短的那条,用优先队列取出最短的,如果另一个端点不在当前集合,就加进来,并且把与这个点相连的所有边加到优先队列里代码:K原创 2017-03-05 12:16:47 · 274 阅读 · 0 评论 -
UVA 11090 Going in Cycle!! SPFA判断负环+二分
题目链接:https://vjudge.net/problem/UVA-11090题意:给你一个有向图,问你定义一个环的平均值为这个环上所有边的平均值,问你最小的环的平均值是多少题解:二分答案:若当前的二分值是mid,让所有的边都减去这个值,如果此时图中出现负环,则说明有环的平均值比这个更小假设一个包含k条边的回路,回路上各条边的权值为w1,w2……wk,那么平均值小于mid意味着 w1+w2+……原创 2017-03-08 20:49:31 · 312 阅读 · 0 评论 -
洛谷1462 通往奥格瑞玛的道路 二分+spfa
题目链接:https://www.luogu.org/problem/show?pid=1462题意:题解:二分法+最短路判定。二分经过城市的最大费用w,然后判定:对于每一个费用大于w的城市标记为不可达,求最短路径,判断最短路与血量的关系即可。如果一个城市不可达可以在SPFA算法开始前将inq置为1。小的优化:把f值从小到大排序,对f值进行二分就可以了。代码:#include <bits/stdc+原创 2017-03-08 15:15:35 · 401 阅读 · 0 评论 -
BZOJ 1003 物流运输trans dijstra+dp
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1003题意:题解:首先我们必须机智的知道f[i]=min(f[i],f[j]+cost(j+1,i)+k)这个dp方程 cost(i,j)表示从第i天到第j天的最小花费 dijstra跑一发代码:#include <bits/stdc++.h>using namespace std;t原创 2017-03-03 23:24:10 · 508 阅读 · 0 评论 -
poj 1330 Nearest Common Ancestors LCA/DFS
题目链接:http://poj.org/problem?id=1330题意:求出两点间的最近公共祖先。题解:第一种: 并查集维护:http://www.cnblogs.com/procedure2012/archive/2012/01/29/2331468.html 利用并查集在每次对子树进行遍历时进行合并,因为对以x为根的子树的遍历时只有当x的所有子树都遍历过后才会把它合并到他父亲的集合里,所原创 2017-04-11 23:58:19 · 262 阅读 · 0 评论