E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
Volume2-暴力求解法
【算法学习笔记】15.
暴力求解法
04 回溯法02 困难的串
发现好久没来更新了,开学之后各种杂事,好久都没学习算法了,还好最近马上要学习计导里有关算法的部分了。明天还要预习一下,今天先暂时把上次写完的困难的串(“好久之前的事”)更新一下,再在十一假期中强烈补充算法知识。 困难的串仍然是回溯法的部分,既然是回溯法那么就要DFS然后及时返回。 题目:如果一个字符串包含两个相邻的重复子串,则称它是”容易的串“,其他串成为”困难
·
2015-10-31 11:24
学习笔记
【算法学习笔记】14.
暴力求解法
02 子集生成的三种方法
子集的生成 实例 input 4 output 1 1 2 1 2 3 1 2 3 4 1 2 4 1 3 1 3 4 1 4 2 2 3 2 3 4 2 4 3 3 4 4 请按任意键继续. . .(第一行是空行表示空集) 第一种方法:增量构造法 顾名思义,就是要用不断在已有子集的基础上不断增加新元素一直到无法继续增加时为止(这种方法的递归边界
·
2015-10-31 11:24
学习笔记
【算法学习笔记】16.
暴力求解法
04 回溯法03 剪枝法 带宽
在之前的 N 皇后和困难的串问题中,回溯法都是在解决可行性约束。换一句话说,对于回溯点的判断是用来验证此点是否合法。 但是在一些优化问题的求解过程中,每一个点都是合法的,所以我们要进行剪枝。 1.先得到一个解。(一般情况下不是最优解,实现细节:用一个极大的数先作为结果。) 2.在回溯的过程中,判断继续进行是否肯定超过最优解。若是,则剪去。 例子:UVa 140 题意 &nb
·
2015-10-31 11:23
学习笔记
【算法学习笔记】18.
暴力求解法
06 隐式图搜索2 八数码问题 未启发
<p>/* 因为注释很详细,就直接上代码了,需要注意的是,用了白书的三种方法来进行判重,其中最快捷的方法还是stl的set,还有哈希技术涉及到了多个链表的处理,还有一种就是编码解码技术,这个需要找到一个非常好的函数才能达到一一对应。而哈希表不需要一一对应(因为有链表)。</p><div>*/</div>// // main.cpp // Ei
·
2015-10-31 11:23
学习笔记
【算法学习笔记】17.
暴力求解法
05 隐式图搜索1 迭代加深搜索 埃及分数
题目 http://codevs.cn/problem/1288/ 卧槽。整了一天还是没全 AC 后面多层的时候不知道问题出在哪里了,跑不出来。 这个题的难点在于解答树的每一层都是无穷多,这导致我们必须要强烈的剪枝!否则绝对没有办法跑完。由于题目的特殊性(拆分),所以我们要尽量剪枝,估计是因为我这个剪的还不够,一到难题就不行了。还有3/997 算不出来的原因有点特别。以后再仔细想想。
·
2015-10-31 11:23
学习笔记
UVa-140 - Bandwidth
决定跳过数据结构那章,来看
暴力求解法
。暴力这章之前也看过,可是前几天做了一道POJ的暴力题,却没有想起来自己曾经在书上看过类似的暴力枚举解法,所以决定再仔细看一遍。
·
2015-10-21 11:57
width
算法入门经典习题2-10
令其为a,b,c.使的a:b:c=1:2:3我的方法:
暴力求解法
写了三个函数, istrue()----->判断一个三位数各位是否相同,不相同返回1 istrue1()------>判断一个数与一个三位数的各位是否相同
qq_23100787
·
2015-08-24 20:00
算法
函数
C语言
算法竞赛入门经典:第七章
暴力求解法
7.20八数码问题之stl
/* 八数码问题之stl: 1setvis,这样只需要调用if(vis.count(s))来判断s是否在集合vis中,并用vis.insert(s)加入集合,用vis.remove(s)从集合中移除s。 问题:并不是所有类型的State都可以作为set中的元素类型。set的元素必须定义"vis,这样只需要调用if(vis.count(s))来判断s是否在集合vis中,并用vis.insert
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.18八数码问题之哈希去重
/* 八数码问题之哈希去重: 输入: 264137058 815736402 输出: 31 */ /* 关键: 1哈希:把结点变成整数,但不必是一一对应。设计一个哈希函数h(x),然后将任意结点x映射到某个给定的范围[0,M-1]的整数即可,其中M是程序员根据可用内存大小 自选的。不同结点哈希值相同时,用链表组织哈希值相同的链表。 2iSum=10*iSum+s[i];
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.18 广度优先搜索之八数码问题
/* 八数码问题: 编号为1~8的8个正方形滑块被摆成3行3列(有一个格子空留),如图所示。每次可以把与空格相邻的滑块(有公共边才算相邻)移到空格中,而它原来的位置就称为了 新的空格。给定初始局面和目标局面(用0表示空格格),你的任务是计算出最少的移动步数。如果无法达到目标局面,则输-1. 264815 137736 5842 思路: 1用广度优先搜索,难道得用9个位置剪枝才能
qingyuanluofeng
·
2015-08-18 09:00
广度优先搜索
算法竞赛入门经典:第七章
暴力求解法
7.18倒水问题
/* 倒水问题: 有装满水的6升杯子、空的3升杯子和一升杯子,3个杯子中都没有刻度。在不使用其他道具的情况下,是否可以量出4升的水呢? 输入: 6(满杯水所在的刻度)31 输出: (6,0,0)->(3,3,0)->(3,2,1)->(4,2,0) 思路: 这与倒可乐是一个问题,关键在与状态的搜索。 1采用广度优先搜索算法 2当前状态的下一状态的方法为:(a,b,c) 状
qingyuanluofeng
·
2015-08-18 09:00
广度优先搜索
算法竞赛入门经典:第七章
暴力求解法
7.16埃及分数
/* 埃及分数: 使用单位分数的和(如1/a,a是自然数)表示一切有理数。例如2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为在加数中不允许有相同的。 对于一个分数a/b,表示方法有很多种,其中加数少的比加数多的号,如果加数个数相同,则最小的分数越大越好。例如,19/45=1/5+1/6+1/18是最优方案。 输入整数a,b(0=1/em,确定em的下界 若设定深度上限为d,
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.13困难的串
/* 困难的串: 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串成为“困难的串”。例如:BB,ABCDACABCAB,ABCDABCD都是容易的,而D、DC、ABDAB、CBABCBA 都是困难的。 输入正整数n和L,输出由前L个字符组成的、字典序第n个小的困难的串。例如,当L=3时,前7个困难的串分别为:A、AB、ABA、ABAC、ABACA、ABACAB、ABACA
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.11回溯法
/* 回溯法: 排列生成和子集枚举的两种方法:1递归,2遍历 遍历:优点:简单,缺点:增大枚举量,检验所有解 回溯法:含义:递归时,将生成+检查过程结合 适合:问题分成步骤,步骤采用不太多选择 回溯算法=递归枚举算法:分成若干步骤递归,若某一步无解,返回上一级调用,称为回溯。 八皇后问题: 在棋盘上放置8个皇后,使得她们互不攻击,此时每个皇后的攻击范围为同行同列和同对角线,
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.10 二进制法
/* 二进制法: 用二进制表示{0,1,2,...,n-1}的子集S:从右往左第i位表示元素i是否在集合S中。1表示在。 异或特点:开关性。两次异或后相当于没有B^B=0,A^B^B=A。 空集:0,全集:2^n-1.ALL_BITS=(1 #include voidprintSubset(intiElem,intn)//打印{0,1,...,n-1}中iElem的子元素 {
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.9位向量法
/* 位向量法: 构造一个位向量B[i],而不是直接构造子集A本身,其中B[i]=1当且仅当i在子集A中。 注意:此题不是求排列,而是求子集,这里n个元素有2^n-1个子集,因为空集无法打印出来 输入: 3 输出: 012 01 02 0 12 1 2 */ /* 关键: 1if(pos==n)//凡是递归,先写递归出口,否则若写在后面,很容易漏掉,所有元
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.8子集生成
/* 子集生成: 给定一个集合,枚举它所有可能的子集。讨论范围:没有重复元素。 增量构造法:一次选出一个元素放到集合中: */ #include #include #defineMAXSIZE1024 //每次递归调用都输出当前集合,递归边界也不需要显式确定--如果无法继续添加元素,就不再递归。 voidprintPermutation(intn,int*iA
qingyuanluofeng
·
2015-08-18 09:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.7解答树
/* 解答树: 以下的树显示了排列递归函数的调用过程。 (****) (1***)(2***)(3***)(4***) (12**)(13**)(14**)(21**)(23**)(24**)(31**)(32**)(34**)(41**)(42**)(43**) (123*)(124*) (1234) 特点: 第0层有n个儿子,第一层各节点各有n-1个儿子,第二层各有n-2
qingyuanluofeng
·
2015-08-18 09:00
解答树
算法竞赛入门经典:第七章
暴力求解法
7.6可重复的排列
/* 生成可重集得到排列: 把问题改成:输入数组P,并按字典序输出数组A各元素的所有全排列,则需要对上述程序进行修改--把P加到printPermutation的参数列表中,然后把 代码中的if(iArr[i]==j)和if(A[pos]==j)改成if(iArr[i]==P[j])和iArr[pos]=P[j] bug1:如果数组中是重复的元素111的话,因为禁止出现重复,造成错误
qingyuanluofeng
·
2015-08-18 09:00
排列
算法竞赛入门经典:第七章
暴力求解法
7.5枚举排列
/* 枚举排列: 输入整数n,按字典顺序从小到大的顺序输出前n个数的所有排列。两个序列的字典序大小关系等价于从头开始第一个不相同位置处的大小关系。例如,(1,3,2) #include #defineMAXSIZE1024 voidprintPermutation(int*iArr,intn,intpos) { if(pos==n)//递归出口,如果下标已经到达数组的个数时,
qingyuanluofeng
·
2015-08-18 09:00
排列
算法竞赛入门经典:第七章
暴力求解法
7.3分数拆分
/* 分数拆分: 输入正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y 输入: 2 12 输出: 2 1/2=1/6+1/3 1/2=1/4+1/4 8 1/12=1/156+1/13 1/12=1/84+1/14 1/12=1/60+1/15 1/12=1/48+1/16 1/12=1/36+1/18 1/12=1/30+1/20 1/12=1/28+1/21 1/12=1/24+
qingyuanluofeng
·
2015-08-17 20:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.4双基回文数
/* 双基回文数: 如果一个正整数n至少在两个不同的进位制b1和b2下都是回文数(2 输入:1600000(1632994) 输出:1632995 思路: 1对比S大每个数进行2到10进制的罗列,这8种中但凡有两种进制回文数相同,就输出 2判断回文数做成一个函数,将一个数先分解(从个位到最高位)存放在一个数组,对这个数组的前一半与后一半进行比较,相同,则认为是回文数 */ /* 关键: 1in
qingyuanluofeng
·
2015-08-17 20:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.2最大乘积
/* 最大乘积: 输入n个元素组成的序列S,你需要找出一个乘积最大的连续子序列。如果这个最大的成绩不是整数,应输出-1(表示无解)。10 {iArr[i],max[i-1]0 {iArr[i],max[i-1]0) { b+=a[i]; } else { b=a[i] } if(b>sum) { sum=b; } } */ #include #include #defineMAXSIZE102
qingyuanluofeng
·
2015-08-17 20:00
算法竞赛
算法竞赛入门经典:第七章
暴力求解法
7.1除法
/* 除法: 输入正整数,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为数字0~9的一个排列,2 #include voiddivision(intn) { if(n79) { printf("您输入的n不符合要求(2<=n<=79),请重新输入!\n"); return; } for(inti=98765/79;i<=98765/2;i++)//因为被枚举
qingyuanluofeng
·
2015-08-17 20:00
枚举
C#实现的24点游戏实例详解
具体如下:1.24点游戏规则及算法规则:给出4个自然数,找出能够求出24的四则运算式,要求数字不能重复使用分析:本算法是一种
暴力求解法
:给出任意两个数字,可以进行6种四则运算,求出最多6个值。
北风其凉
·
2015-08-14 11:28
算法竞赛入门经典_第七章
暴力求解法
_7.2枚举排列:生成1~n的排列
版权所有,欢迎转载,转载请注明出处,谢谢生成1~n的排列递归思想:先输出所有以1开头的排列(这一步是递归调用),然后输出以2开头的排列(这一步是递归调用),接着是以3开头的排列······最后才是以n开头的排列。//vs2012测试代码 #include usingnamespacestd; voidprint_permutation(intn,int*A,intcur) { if(cur==
keyyuanxin
·
2015-02-07 10:00
C++
递归
算法竞赛入门经典
入门经典II 第七章
暴力求解法
7.2枚举排列
说明:按着书中的思想敲的,记录一下自己的学习过程,最下面附带刘汝佳源代码。1)生成1~n的排列(自己写的)#include #include usingnamespacestd; intn; voidp(int*a,intcur){ if(cur==n){ for(inti=0;i>n){ p(a,0); } return0; } 2)生成可重集的排列(自己写的)#include intn; vo
f1024042400
·
2015-01-04 16:00
KMP算法代码实现
//普通的
暴力求解法
int ViolentMatch(char* s, char* p) { int sLen = strlen(s); int pLen = strlen
Taisuke
·
2014-08-11 20:00
C# 24点游戏求解
1.24点游戏规则及算法规则:给出4个自然数,找出能够求出24的四则运算式,要求数字不能重复使用分析:本算法是一种
暴力求解法
:给出任意两个数字,可以进行6种四则运算,求出最多6个值。
北风其凉
·
2014-05-01 21:00
暴力求解法
-简单枚举
publicclassB23 { publicstaticvoiddicide(intn){ for(inti=0;i=100000){ returnfalse; } boolean[]m=newboolean[10]; while(a!=0){ if(m[a%10]==true){ returnfalse; } else{ m[a%10]=true; a/=10; } } while(b!=0
zs064811
·
2013-11-25 17:00
java
枚举
暴力求解法
最大子数组和分治与
暴力求解法
最大子数组和分治与
暴力求解法
简单写了求连续子数组的最大和的算法。枚举法时间复杂度为nlgn,暴力法为n^2。但当n比较小的时候,暴力法更为有效,一直很好奇比较小是小到什么程度,故写了程序测试下。
Vin_t
·
2013-08-19 22:22
算法
C语言
连续子数组最大和
暴力求解法
之 枚举排列
1、生成1~n的排列#include #include constintN=1e3+10; inta[N]; voidprint_permutation(intn,int*a,intcur) { inti,j; if(cur==n)/*递归边界*/ { for(i=0;i #include
LYHVOYAGE
·
2013-07-15 16:00
暴力求解法
之 简单枚举
1、除法输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为0~9的一个排列,2#includeintmain(){inti,j,n,s1,s2,flag[10];while(~scanf("%d",&n)){for(i=1234;i#includeconstintinf=999999;intmain(){longlonga[20],s[20];longl
lyhvoyage
·
2013-07-15 13:29
学习笔记
暴力求解法
之 简单枚举
1、除法 输入正整数n,按从小到大的顺序输出所有形如abcde/fghij=n的表达式,其中a~j恰好为0~9的一个排列,2 #include intmain() { inti,j,n,s1,s2,flag[10]; while(~scanf("%d",&n)) { for(i=1234;i
LYHVOYAGE
·
2013-07-15 13:00
UVaOJ10167---Birthday Cake
UVaOJ10167---BirthdayCake
暴力求解法
#include usingnamespacestd; typedefstructcoordinate { intx,y;
yf924092
·
2013-06-12 23:00
uva
uva
OJ
oj10167
10167
暴力求解法
最大乘积
题目是输入n个元素的序列,找出一个乘积最大的连续子序列。如果不是正数则输出-1.nintinput[20];longlongintsolve(inti,intj){longlongintsum=1;for(intl=i;ltemp)temp=sum;}}if(temp<=0)printf("-1\n");elseprintf("%lld\n",temp);}return0;}
carp_and_wind
·
2013-03-06 23:21
古堡算式
/*
暴力求解法
*/ #include &l
taojianrong
·
2013-02-27 20:00
蓝桥杯
古堡算式
USACO 1.3.4 Prime Cryptarithm
暴力求解法
,由于数据规模小,穷举即可,注意取位的技巧。
michaelalan
·
2012-02-22 18:00
上一页
1
2
3
4
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他