![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
POJ
江南烟雨c
如果成功容易获得,那么你永远不知道自己的潜力有多大
展开
-
POJ 1950 Dessert DFS 搜索
题意:输入n(1 1011)#includeusing namespace std;const int Max = 16;int n,num; // num记录可能得情况数。char symbol[Max]; void print(){ int i; for(i = 1; i < n; i ++) printf("%d %c ", i, symb原创 2017-05-11 16:59:59 · 172 阅读 · 0 评论 -
POJ 2524 宗教问题 并查集
题意:给出一些在一个集合的元素信息,求一共有多少个无交集的集合题解:并查集,初始集合个数为人数,在合并集合的过程中,每次在一个集合里合并了一个人,集合个数就减一#include #include using namespace std; const int maxn =50000+5; int fa[maxn]; int Find(int x) {原创 2017-05-14 09:48:06 · 240 阅读 · 0 评论 -
POJ 1847 Tram Floyd或者spfa 最短路
题意:火车行驶过程有n条岔路(每次只能走一条),默认是第一条路..如果需要改路的话需要操作一次,问从a到b最少需要操作多少次....n个点 a,b是起点和终点,然后n行,第i行有k个点,代表第i个点可以走到这k个点,初始默认方向是第一个点的方向...其他的改道一次需要操作一次...按照操作次数当做边权求最短路即可..输入:3 2 1 //有3个开关点,计算从第二个到第一个最少需要旋转几次原创 2017-05-14 08:53:01 · 185 阅读 · 0 评论 -
POJ3256 Cow Picnic DFS搜索
题意:给你N块地,然后给出M头牛,在给出这N块地的相连情况。现在这M头牛要聚会,问可以有多少块地可以被选作聚会地点#include #include using namespace std;const int MAXN=1005;bool mp[MAXN][MAXN];int mark[MAXN];int unite[MAXN];int k,n,m;int vis[原创 2017-05-11 15:45:53 · 224 阅读 · 0 评论 -
POJ 1270 Following Orders DFS 搜索
题意: 输入数据有两行,第一行给你由26个单个小写字母表示的变量,第二行给出成对的变量如(x,y),表示x要在y前面.然后要你输出所有可能的变量序列且满足第二行的顺序约束.如果存在多解,按字典序从小到大输出所有结果.#include #include using namespace std; const int maxn=30; const int m原创 2017-05-11 17:31:20 · 205 阅读 · 0 评论 -
POJ 2387 Til the Cows Come Home 最短路 Dijstra
题意:给出两个整数T,N,然后输入一些点直接的距离,求N和1之间的最短距离。。思路:dijkstra求单源最短路,但是要注意判重。import java.util.*; public class Main{ public static void main(String args[]){ Scanner in=new Scanner(System.i原创 2017-05-13 17:13:25 · 211 阅读 · 0 评论 -
POJ 1603 Risk 最短路 Floyd Dijstra
POJ 1603每组数据先输入19组边信息,依次代表从第几个顶点出发有哪些边与之直接相连。要注意的是图是无向图,所以在更改邻接矩阵时根据无向图的对称性来处理数据就是求两点中间的最少的城市个数public class Main{ static int[][] w=new int[21][21]; static final int n=20; public static voi原创 2017-05-14 09:22:52 · 275 阅读 · 0 评论 -
POJ 2139 Six Degrees of Cowvin Bacon 最短路
题目大意:有n头牛,如果两头牛同拍一部电影,这他们之间的距离为一,如果两头牛都和第三头牛拍过同一部电影,那么它们之间的距离经第三头牛传递就为2,,,求那一头牛与其它牛距离的平均值最小,把他乘一百输出。(求的时候,先扩大一百倍再求平均值)#include #include #include #include using namespace std; const int原创 2017-05-13 23:59:04 · 211 阅读 · 0 评论 -
POJ 2240 Arbitrage 最短路 Floyd
题意:首先给出N中货币,然后给出了这N种货币之间的兑换的兑换率。如 USDollar 0.5 BritishPound 表示 :1 USDollar兑换成0.5 BritishPound。问在这N种货币中是否有货币可以经过若干次兑换后,兑换成原来的货币可以使货币量增加。 本题其实是FLOYD的变形。将变换率作为构成图的路径的权重。这儿构成的图是一个有向图。最后将松弛操作变换为:if(dis[i][原创 2017-05-13 23:35:50 · 192 阅读 · 0 评论 -
POJ 1502 MPI Maelstrom 最短路
题意:给你一个不完全的矩阵,数字表示权值,x表示两点间不可达由于自身到自身花费的时间为0,所以没有给出,由于i到j和j到i距离相同,互达时间相同所以只给出了一半的临界矩阵。根据给你的这个临界矩阵,让你来求从点1到其他点所花费最短时间集里面的的最大值。其实这是一个很直接的最短路package 最短路;import java.util.Scanner;p原创 2017-05-13 21:59:14 · 192 阅读 · 0 评论 -
POJ 3268 Silver Cow Party 最短路
题意:有编号为1-N的牛,它们之间存在一些单向的路径。给定一头牛的编号,其他牛要去拜访它并且拜访完之后要返回自己原来的位置,求这些牛中所花的最长的来回时间是多少。每头牛返回的最短时间很简单就可以算出来,这相当于从目标牛为起点求单源最短路径。但每头牛出发到目标牛的最短时间无法直接算出来,稍微转换一下,发现这个最短时间其实可以通过把所有的边取反向,然后再从目标牛求一次单源最短路径得到。得到这两个最短路原创 2017-05-13 19:20:34 · 220 阅读 · 0 评论 -
POJ 1797 Heavy Transportation
题目大意:有n个城市,m条道路,在每条道路上有一个承载量,现在要求从1到n城市最大承载量,而最大承载量就是从城市1到城市n所有通路上的最大承载量解题思路:其实这个求最大边可以近似于求最短路,只要修改下找最短路更新的条件就可以了#include using namespace std; #define MAXV 1010 #define min(a,b) (a<b?a:b)原创 2017-05-13 17:53:58 · 206 阅读 · 0 评论 -
POJ 2253 Frogger 最短路
题目大意:有两只青蛙和若干块石头,现在已知这些东西的坐标,两只青蛙A坐标和青蛙B坐标是第一个和第二个坐标,现在A青蛙想要到B青蛙那里去,并且A青蛙可以借助任意石头的跳跃,而从A到B有若干通路,问从A到B的所有通路上的最大边 石头的距离没有直接给出需用距离公式计算解题思路:一个简单的最短路径变形,只要将d[i]的意义变为从1到i的最大边即可,然后修改下更新条件就可以了packag原创 2017-05-13 17:35:16 · 384 阅读 · 0 评论 -
POJ 1178 Camelot 最短路 Floyd +枚举
题目大意:在一个8*8的棋盘里有一个国王和一些骑士,我们须要把他们送到同一顶点上去,骑士和国王的行动方式如图所看到的。国王能够选择一名骑士作为坐骑。上马后相当和该骑士 一起行动(相当于一个骑士),同一位置能够同一时候有多个骑士和国王。问最少走的步数解题思路:把8*8棋盘变成0~63的数,Floyd求出随意两点之间的最短路径。8*8枚举就可以。枚举终点,骑士上马点,国王上哪个骑原创 2017-05-13 15:00:12 · 261 阅读 · 0 评论 -
POJ 1125 Stockbroker Grapevine 最短路
题意:首先,题目可能有多组测试数据,每个测试数据的第一行为经纪人数量N(当N=0时,输入数据结束),然后接下来N行描述第i(1<=i<=N)个经纪人与其他经纪人的关系(教你如何画图)。每行开头数字M为该行对应的经纪人有多少个经纪人朋友(该节点的出度,可以为0),然后紧接着M对整数,每对整数表示成a,b,则表明该经纪人向第a个经纪人传递信息需要b单位时间(即第i号结点到第a号结点的孤长为b)原创 2017-05-13 13:24:19 · 196 阅读 · 0 评论 -
POJ 1129 Channel Allocation 涂色问题 DFS 回溯 搜索
题意:构图,如果两点互相影响,则连接一条边。剩下的就是图着色问题,相连的点不能用同一种颜色,问最少需要多少颜色。写法一:0ms#include using namespace std; bool map[26][26]; int n,ans; int color[26]; bool check(int position,int color_index)原创 2017-05-10 23:40:53 · 650 阅读 · 0 评论