回溯
ZeroLH00
这个作者很懒,什么都没留下…
展开
-
UVA 193 Graph Coloring
UVA 193 Graph Coloring题目大意:几个点,连线,给点涂色,相邻俩点不能同时为黑色,白色可以随便图,求出黑色点最多的涂法解题思路:回溯涂色#include <stdio.h>#include <iostream>#include <string.h>using namespace std;int n, m;int con[110][110];int col[110];原创 2016-08-27 19:19:36 · 431 阅读 · 0 评论 -
UVA 12627 Erratic Expansion
UVA 12627 Erratic Expansion题目大意:一开始有一个红气球,经过变化,一个红气球会变成3个红气球和1个蓝气球,蓝气球会变成4个蓝气球,输入k次变换后,a到b行共几个红气球 解题思路:设置函数count()计算经过p次变换r行以上的红气球个数,分2种情况(r在2^p-1之上或者之下)递归求解,其中防止tl设置count1计算2^p-1之上的气球数来提高效率#includ原创 2016-11-02 17:07:25 · 319 阅读 · 0 评论 -
UVA 129 Krypton Factor
题目大意:如果又一个字符串包含俩个相邻重复子串,则称之为容易的串,反之则是困难的串,给出m和n,找最多出现前n个字母组成的困难串表字典序排列的第m个困难串 解题思路:每次加入字母时都与已有字母串进行比较,找是否有相同连续的串,判断前一半是否等于后一半,等于则跳出,不等于则继续#include <cstdio>#include <iostream>using namespace std;int原创 2016-11-16 19:57:46 · 372 阅读 · 0 评论 -
UVA 167 The Sultan's Successors
UVA 167 The Sultan’s Successors题目大意:类八皇后问题,每个格子都有权值 解题思路:回溯#include <stdio.h>#include <iostream>#include <string.h>using namespace std;int num[9][9];int ju[3][20];int s;int p;void dfs(int a) {原创 2016-08-26 18:03:49 · 557 阅读 · 0 评论 -
UVA 10012 How Big Is It?
UVA 10012 How Big Is It?题目大意:给出一组圆的半径,这组圆排成一排,要求都切于底面,求要用最少长为多少的长方形能装下它们解题思路:先全排列,然后回溯 注意点:每个圆不能只计算与上一个圆间的距离,因为可能上个圆可能很小导致圆直接与上上个圆相切而不接触上一个圆,同理,最后也不能直接加上最后一个圆的半径,因为可能最后一个圆特别小 所以每次访问一个圆时计算前几个圆与它的距离更新坐原创 2016-08-25 19:20:23 · 401 阅读 · 0 评论 -
UVA 331 Mapping the Swaps
UVA 331 Mapping the Swaps题目大意:给出一组数,相邻位置可以交换,求从从小到大排列有几种不同的排列法(不做无用功) 解题思路:dfs回溯#include <stdio.h>#include <iostream>#include <string.h>using namespace std;int num[6];int n;int s;int jud() {原创 2016-08-25 17:12:53 · 306 阅读 · 0 评论 -
UVA 10344 23 out of 5
UVA 10344 23 out of 5题目大意:给出五个数,问随机组合后中间+,-,*运算是否能使结果为23解题思路:先全排列,然后回溯#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int num[5];int flag;void dfs原创 2016-08-24 17:32:26 · 264 阅读 · 0 评论 -
UVA 301 Transportation
UVA 301 Transportation题目大意:列车运人,获利最大的问题,第一行输入三个值,分别是限制人数,站点数,订单数t,然后以下t行是订单信息,每个订单包含3个值前俩个代表从第x站到第y站,第三个数是人数,获利=人数*(y - x)解题思路:回溯,无非就是一个部车开过去是否接这个单,每次判断是否能接这个单,递归判断接与不接,比较最大值就行#include <stdio.h>#inclu原创 2016-08-24 16:34:00 · 322 阅读 · 0 评论 -
UVA 539 The Settlers of Catan
UVA 539 The Settlers of Catan题目大意:第一行输入n个城市和m条路,下面m行输入m条路连接那些城市,求一条经过最多路的路径长度解题思路:把每个点作为初始位置回溯#include <stdio.h>#include <iostream>#include <string.h>using namespace std;int n, m;int road[30][30];原创 2016-08-24 15:31:04 · 278 阅读 · 0 评论 -
UVA 639 Don't Get Rooked
UVA 639 Don’t Get Rooked题目大意:类似八皇后的问题,在给定区域放车,车可以横着走也可以竖着走但不能斜着,X是障碍物,求出区域最多能放多少车是它们吃不到对方解题思路:回溯讨论情况,遍历棋盘放棋子,判断是否会被吃#include <stdio.h>#include <string.h>#include <iostream>using namespace std;char原创 2016-08-23 19:27:41 · 311 阅读 · 0 评论 -
UVA 216-Getting in Line
UVA 216-Getting in Line题目大意:给出坐标,求出全部连起来的最短路,每个连线长度要另外加16 解题思路:可以列子集,也可以回溯,子集因为这题情况少可以用,回溯则是比较通用,一下是用回溯的代码#include <stdio.h>#include <iostream>#include <algorithm>#include <math.h>#include <string原创 2016-08-23 19:23:11 · 304 阅读 · 0 评论 -
UVA 10474 Where is the Marble
UVA 10474 Where is the Marble?题目大意:将给出的数字从小到大排序,并找到相应的数字是第几个解题思路:qsort排序然后查找#include <stdio.h>#include <iostream>#include <string.h>#include <algorithm>using namespace std;int num[10010];int num2原创 2016-08-19 19:34:14 · 298 阅读 · 0 评论 -
UVA 208 Firetruck
UVA 208 Firetruck题目大意:输入火焰所在的地点数字和哪些地点相连(数字不超过21),求从1通往火焰一共几条路解题思路:回溯找路,用剪枝优化,访问点时确认这个点能通往火焰所在地点#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int range[25][25];int ra原创 2016-08-27 20:35:13 · 430 阅读 · 0 评论 -
UVA 140 Bandwidth
题目大意: 给一张图的结点连接, 对各个结点进行排列, 排列中的每一个点与存在连接的点的距离的最大值为带宽,求出使带宽最小的排列 题目要我们求出所有排列中,bandwidth最小的那个排列,并输出这个排列和这个bandwidth 解题思路: 利用回溯,一开始设带宽为元素个数,然后一个个元素加入排列,加入元素时与前面已经加入排列并与新加入的元素有连接(即flag2[][] == 1)的元素计算原创 2016-11-19 15:37:29 · 453 阅读 · 0 评论