![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
图论
HYB733093411
这个作者很懒,什么都没留下…
展开
-
HDU 2066 一个人的旅行
题目链接题意:中文题。。。分析:floyd算法,删减dp[i][k] inf的边 优化避免超时#include<cstdio>#include<cstring>#include<algorithm>#define inf 0x3f3f3f3f#define N 1001using namespace std;int dp[N][N];int dd[N];void floyd(int原创 2016-08-03 20:06:50 · 237 阅读 · 0 评论 -
POJ 1161 Walls
题目链接题意:给定一些城市,若干成员在不同城市,城市间城墙相连,找一个区域,使成员集合时穿过的城墙最少。分析:floyd+建图。以区域为节点,城墙为边建图。因为题目给定的包围区域的点是顺时针的,所以,如果区域a有边AB,区域b有边BA,那么a,b必相邻。#include<cstdio>#include<algorithm>#include<cstring>#define MAX_N 255#原创 2016-08-05 21:37:54 · 270 阅读 · 0 评论 -
POJ 2253 Frogger
题目链接题意:从0号点,到1号点,找一条能通过的路,使得这条路中的最大的边,比其它所有可能的路中的边都小。分析:用floyd算法求两点最短值。再求出从每个点开始的最长路,最后从这n个最长路中求出最小的那个即为所求。#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define MAX_N 205using原创 2016-08-02 20:36:36 · 434 阅读 · 0 评论 -
POJ 1201 Intervals
题目链接题意:从一系列区间[a_i,b_i]中至少取出c_i个数构成集合s,求s的最小size分析:差分约束系统,化成图后求最大路径,SPFA#include<cstdio>#include<algorithm>#include<vector> #include<queue>#include<cstring>#include<iostream>#define MAX_V 50005#d原创 2016-08-02 20:32:29 · 215 阅读 · 0 评论 -
POJ 1274 The Perfect Stall
题目链接题意:N头牛M个牛栏,每头牛只愿独占特定几个牛栏,求最大分配。分析:裸的匈牙利算法。#include<cstdio>#include<algorithm>#include<cstring>using namespace std;int match[205],map[205][205],n,m;bool used[205];int dfs(int x){ for(int i原创 2016-08-02 20:29:00 · 228 阅读 · 0 评论 -
POJ 2236 Wireless Network
题目链接题意:距离d内的两台电脑互联。现在通过修理和查看操作,求查看时两台电脑是否互联?分析:这是并查集的基本应用,两台修好的电脑若距离d内则加入合并。#include<cstdio>#include<algorithm>#include<cstring>#define MAX_N 1005using namespace std;struct node{ int x,y;}co原创 2016-08-02 20:25:59 · 248 阅读 · 0 评论 -
POJ 1125 Stockbroker Grapevine
题目链接题意:求谣言传递的最短时间。分析:floyd,之后找最短时间就可以了#include<cstdio>#include<algorithm>#include<cstring>#define MAX_N 105#define inf 0x3f3f3f3fusing namespace std;int n;int dp[MAX_N][MAX_N];void warshall_flo原创 2016-08-02 20:23:05 · 195 阅读 · 0 评论 -
POJ 2472 106 miles to Chicago
题目链接题意:给定一张图,每条路有一定权值,代表不会被抓到的概率。求概率最大值。分析:对概率取对数后再去负号,相当于求最短路。裸的dijkstra.#include<stdio.h>#include <iomanip>#include<iostream>#include<cmath>using namespace std;const int MAX_N = 100;const doubl原创 2016-08-02 20:18:37 · 292 阅读 · 0 评论 -
HDU 3461 Code Lock
题目链接题意:这题看得好久才看懂。。。意思是给定长度为n的锁,给定m个区间,转动m个区间的密码会同时增1,问有几种不同的锁。分析:并查集+快速幂,合并区间,计算区间数cnt,答案就是26^(n-cnt)#include<stdio.h>#include<algorithm>#define N 10000005#define mod 1000000007using namespace std;原创 2016-08-04 20:31:46 · 241 阅读 · 0 评论 -
HDU 2807 The Shortest Path
题目链接题意:给定几所城市,每个城市可以表示成矩阵,如果A*B=C,则表明城市A到B有路径,且长为1.给定若干询问,判断询问城市是否连通?分析:这题数据水。。暴力即可。//1014ms#include<cstdio>#include<algorithm>#include<cstring>#define MAX_N 85#define inf 0x3f3f3f3fusing namespac原创 2016-08-04 20:27:00 · 251 阅读 · 0 评论 -
HDU 3938 Portal
题目链接题意:一张无向图,求有多少条路径使得路径上的花费小于L,这里路径上的花费是这样规定的,a、b两点之间的多条路径中的最长的边最小值。分析:并查集+离线处理。按最小生成树的思想,按边权值由小到大排。对于询问按问的l由小到大排,最后复原回去。当边权值小于询问值就合并边的两端点。用r[k]记录树的节点数。两颗树合并成一棵树时, 将会增加r[a]*r[b]条路径。#include<stdio.h>#原创 2016-08-03 20:20:44 · 245 阅读 · 0 评论 -
HDU 3631 Shortest Path
题目链接题意:给定一张图,求过给定的点的最短路。分析:floyd算法,中间节点k只取标记过的#include<cstdio>#include<algorithm>#include<cstring>#define MAX_N 305#define MAX_M 100005#define MAX_Q 100005#define inf 0x3f3f3f3fusing namespace s原创 2016-08-03 20:10:00 · 290 阅读 · 0 评论 -
POJ 1724 ROADS
题目链接题意:找花费不超过k的最短路。分析:dijkstra+优先队列+bfs#include<cstdio>#include<algorithm>#include<vector>#include<iostream>#include<functional>#include<cstring>#include<queue>#define MAX_V 105#define inf 1000原创 2016-08-05 21:42:09 · 281 阅读 · 0 评论