第7章 暴力求解法
文章平均质量分 60
01的世界
有时,失去了才懂得珍惜
展开
-
UVa 1601 例题7-9 万圣节后的早晨
分析:如果以当前3个小写字母的位置为状态,则问题转化为图上的最短路问题。但是如果每次都判断小写字母的下一步是否合法,那就是说每次移动都需要判断5^3,肯定会超时。方法是把所有可以移动的格子找出来建立一张图,就是把障碍物给删除,统计每个可以空格或者有鬼的格子可以移动到哪些格子,这样在判断的时候就节省了许多时间。然后bfs找最短路。还有一种方法是双向宽度搜索,方法是起始状态和末尾状态都搜索,直原创 2015-10-03 17:41:10 · 2761 阅读 · 0 评论 -
例题 7-3 分数拆分 UVa 10976
Input212SamplOutput21/2 = 1/6 + 1/31/2 = 1/4 + 1/481/12 = 1/156 + 1/131/12 = 1/84 + 1/141/12 = 1/60 + 1/151/12 = 1/48 + 1/161/12 = 1/36 + 1/181/12 = 1原创 2015-08-23 08:53:18 · 462 阅读 · 0 评论 -
例题7-4 素数环 UVa 524
题目:点击打开链接题意:输入正整数n,把整数1,2,3......n组成一个环,使得相邻两个整数之和为素数,输出时从整数1开始逆时针排列。同意换恰好输出一次。ndfs递归枚举判断,在判断素数的时候,初始化一个素数表就好了,比较节省时间#include#include#include#include#define MAXN 50using namespace std;i原创 2015-08-23 15:57:24 · 435 阅读 · 0 评论 -
例题7-2 最大乘积 UVa 11059
输入n个元素的序列s,找出一个连续序列的最大乘积分析:数据较小,直接O(n^2)可得出,用 long long注意:printf输出 long long 时要用%lld ,好像LINUX系统的原因,win系统要用%I64d ,因为我一直用%I64d WA好多次#include #include #include using namespace std;#define LL lo原创 2015-08-22 18:56:57 · 486 阅读 · 0 评论 -
例题 7-5 困难的串 UVa129
题目:点击打开链接题意:书上195页有详细解释#include#include#include#include#includeusing namespace std;int cnt ,n , L;char s[1000];int dfs(int cur){ if (cnt++ == n) { for (int i = 0; i < cur; i原创 2015-08-23 17:05:30 · 580 阅读 · 0 评论 -
UVa 140 Bandwidth 例题7-6
/枚举全排列对每个排列的每个节点求出与其相邻的节点中最大的带宽,所有节点最大的带宽就是这个排列的带宽,枚举全排列找到最小的带宽*函数原型:extern char *strchr(char *str,char character)参数说明:str为一个字符串的指针,character为一个待查找字符。所在库名:#include 函数功能:从字符串str中寻找字符character第一次出现原创 2015-08-23 19:32:18 · 365 阅读 · 0 评论 -
例题 7-7 宝箱 UVa 12325
题意:有一个体积为N的箱子,无数的体积s1,价值v1的宝物一和体积s2,价值v2的宝物二,问箱子可以装的最大的价值?分析:刚开始思路肯定是枚举箱子1的个数,然后剩下的就是箱子2.计算对应的价值即可。但是这题只说了所有量在int范围内,假如说n等于一亿,s1,s2等于1,这样枚举肯定会超时。所以要分情况讨论一下。如果n很大,s1,s2很小的时候,由于s2个宝物1和s1个宝物2的体积相等,对于s2原创 2015-10-04 11:06:02 · 404 阅读 · 0 评论 -
例题 7-10 编辑书稿 UVa 11212
分析:看的题解,明白了迭代加深算法。迭代加深搜索的一道题目,因为深度是不确定的,所以每次限定一个深度,如果预计在这个深度内不会有解,则剪枝。这样只要解的深度有限,就一定可以在有限时间内枚举得到。#include#include#include#includeusing namespace std;const int maxn=9;int n,a[maxn];bool is_sor原创 2015-10-03 12:52:27 · 562 阅读 · 0 评论 -
例题7-7 天平难题 UVa1354 **
题目:给出房间的宽度r和s个挂坠的重量wi。设计一个尽量宽(但宽度不能超过房间宽度r)的天平,挂住所有挂坠分析:这题果然是难题啊,我果然不会啊,看了题解,没搞明白,照着敲了遍,以后回来再看看参考这个博客看懂了一点点:点击打开链接代码:#include#include#includeusing namespace std;struct Tree { double L原创 2015-10-02 18:36:36 · 470 阅读 · 0 评论 -
例题7-1 除法UVa 725
题目:点击打开链接大意:给你一个数n(2 分析:暴力枚举b,然后*n得到a,判断,a,b中是否有重复数字即可代码:#include #include #include using namespace std;bool judge(int a,int b){ bool vis[12]; char str[12]; sprintf(str,"%05原创 2015-08-22 15:00:24 · 628 阅读 · 0 评论