暴力
文章平均质量分 96
Sunshine_victory
The greater the love,the greater the tragedy when it is over.
展开
-
生成1~n的排列 生成可重集的排列 下一个排列
生成1~n的排列:输入n,输出1~n的全排列。刘汝佳竞赛入门经典P184:用递归的思想解决:先输出所有以1开头的排列(这一步是递归调用),然后输出以2开头的排列(又是递归调用),接着输出以3开头的排列……最后才是以n开头的排列。在生成1~i(i#include #include #include #include #include using namespace std;c原创 2017-08-07 15:12:17 · 785 阅读 · 0 评论 -
UVA-11059 Maximum Product
题意:输入n个正整数组成的序列S,找一个乘积最大的连续子序列,如果这个数不是正数,输出0。1分析:根据n的范围,可知计算量不大,直接暴力,算出所有子序列的乘积取最大值即可。#include#include#include#includeusing namespace std;const int maxn = 25;int a[maxn];int main () { //原创 2017-08-05 16:30:26 · 393 阅读 · 0 评论 -
UVA10976-Fractions Again?!
题意:输入正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y。分析:由x>=y,易得k#include#include#include#includeusing namespace std;const int maxn = 25;int a[maxn];int main () { //freopen("in.txt","r",stdin); in原创 2017-08-05 16:22:18 · 233 阅读 · 0 评论 -
UVA-10603 Fill 倒水问题 BFS+优先队列
题目链接:https://vjudge.net/problem/UVA-10603题意:设三个杯子的容量分别是a,b,c,最初只有第三个被子装满了c升水,其它两个杯子为空。最少需要倒多少升水才能让某一个杯子中的水有d升呢?如果无法做到恰好d升,就让某一个杯子里的水是d2升,其中d2分析:本题的目标是倒的水量最少而不是步数最少。实际上,水量最少时步数不一定最少。例如:a=1,b=12,c=1原创 2017-08-12 12:03:01 · 422 阅读 · 1 评论 -
路径寻找问题:八数码问题
在现实问题中,很多问题都可以鬼节为图的遍历,但这些问题中的图却不是事先给定,从程序读入的,而是有程序动态生成的,成为隐式图。路径寻找问题可以归结为隐式图的遍历,他的任务是找到一条从初始状态到终止状态的最优路径。下面我们来看路径寻找问题的经典问题:八数码问题。题意:如下如所示,a,b分别表示两种状态,每个九宫格中的数字都是0~8共9个数字的任意一种排列,现在要把算出a状态移动到b状态的最佳步骤(原创 2017-08-10 14:36:02 · 774 阅读 · 0 评论 -
UVA-140 Bandwidth 带宽
题目链接:https://vjudge.net/problem/UVA-140题意:给出一个n(n举例说明:如图,最右边是无向图,下面两幅图都遵循这个连接方式,下面两幅图中,左图各结点的带宽分别是6,6,1,4,1,1,6,6。右图各结点带宽分别为5,3,1,4,3,5,1,4。分析:n比较小,暴力求解,利用STL中next_permutation函数枚举全排列,逐个计算出原创 2017-08-09 19:15:44 · 417 阅读 · 0 评论 -
UVA-524 Prime Ring Problem 素数环
题目链接:https://vjudge.net/problem/UVA-524题意:输入正整数n,把1~n这n个整数组成一个环,使得相邻两个整数之和均为素数。输出时从1开始逆时针排序。同一个换应恰好输出一次。n分析:粗略的计算一下,如果生成1~n的全排列暴力计算,排列总数最高达16!=2*10^13,很可能会超时,在此应用回溯法将会快很多。注意全局标记变量在调用完递归函数后要复原。#i原创 2017-08-08 16:35:48 · 348 阅读 · 0 评论 -
回溯法:应用举例--八皇后问题
回溯法:回溯法(探索与回溯法)是一种选优搜索法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,即返回上一级递归调用,这种走不通就退回再走的技术为回溯法。正是这个原因,递归枚举算法常被称为回溯法,应用十分普遍。八皇后问题是回溯法应用的一个典型问题。问题描述:玩过国际象棋的人都知道,皇后可以在横、竖、斜线上不限步数地吃掉其他棋原创 2017-08-08 14:40:43 · 2160 阅读 · 0 评论 -
子集生成:增量构造法 位向量法 二进制法
子集生成算法:给定一个集合(集合中无重复元素),枚举所有可能的子集。下面以输入集合1,3 ,5为例。刘汝佳算法竞赛入门经典P188。1.增量构造法。即一次选出一个元素放在集合中,每次放入新元素后输出。原理图:#include#include#include#includeusing namespace std;const int maxn=100010;int原创 2017-08-08 11:23:56 · 820 阅读 · 0 评论 -
UVA-129 Krypton Factor 困难的串
题目链接:https://vjudge.net/problem/UVA-129题意:如果两个字符串包含两个连续的串,则称它为“容易的串”,否则称为“困难的串”,例如,BB,ABCDABCD,ABCDACABCAB,都是容易的串,而D,ABAC,都是困难的串。输入正整数n,L,让你找出由字母表前L个大写字母组成的字典序第n小的困难的串,并且输出这个串的长度。输出格式请点击上面题目链接参加原题。例原创 2017-08-09 10:37:49 · 420 阅读 · 0 评论