随笔分类 -  102-搜索与回溯

洛谷 P1605 迷宫
摘要:题目链接https://www.luogu.org/problemnew/show/P1605 题目背景 迷宫 【问题描述】 给定一个N*M方格的迷宫,迷宫里有T处障碍,障碍处不可通过。给定起点坐标和终点坐标,问: 每个方格最多经过1次,有多少种从起点坐标到终点坐标的方案。在迷宫中移动有上下左右四种 阅读全文

posted @ 2019-03-30 17:59 华山青竹 阅读(367) 评论(0) 推荐(0) 编辑

碎纸机
摘要:题目OJ链接:http://bailian.openjudge.cn/practice/2803/ 还有三个特别的规则:1.如果目标数和输入纸片上的数相同,那么纸片不进行切割。2.如果不论怎样切割,分割得到的纸片上数的和都大于目标数,那么打印机显示错误信息。3.如果有多种不同的切割方式可以得到相同的 阅读全文

posted @ 2018-05-05 17:38 华山青竹 阅读(483) 评论(0) 推荐(1) 编辑

棋盘问题 POJ 1321
摘要:分析: 类似于八皇后问题,把每一行当做一个阶段(或者说状态),每一个阶段(状态)有若干种选择(当前行有若干列)。 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int n,k; 5 int book[100],an 阅读全文

posted @ 2017-09-03 20:56 华山青竹 阅读(387) 评论(0) 推荐(0) 编辑

A Knight's Journey
摘要:总时间限制: 1000ms 内存限制: 65536kB描述BackgroundThe knight is getting bored of seeing the same black and white squares again and again and has decided to make 阅读全文

posted @ 2017-09-03 20:46 华山青竹 阅读(249) 评论(0) 推荐(0) 编辑

红与黑
摘要:红与黑总时间限制: 1000ms 内存限制: 65536kB描述有一间长方形的房子,地上铺了红色、黑色两种颜色的正方形瓷砖。你站在其中一块黑色的瓷砖上,只能向相邻的黑色瓷砖移动。请写一个程序,计算你总共能够到达多少块黑色的瓷砖。输入包括多个数据集合。每个数据集合的第一行是两个整数W和H,分别表示x方 阅读全文

posted @ 2017-09-03 20:43 华山青竹 阅读(500) 评论(0) 推荐(0) 编辑

N皇后问题【递归求解】
摘要:n皇后问题:输入整数n, 要求n个国际象棋的皇后,摆在n*n的棋盘上,互相不能攻击,输出全部方案。 输入一个正整数N,则程序输出N皇后问题的全部摆法。输出结果里的每一行都代表一种摆法。行里的第i个数字如果是n,就代表第i行的皇后应该放在第n列。皇后的行、列编号都是从1开始算。样例输入:4样例输出:2 阅读全文

posted @ 2017-08-03 15:03 华山青竹 阅读(378) 评论(0) 推荐(1) 编辑

迷宫问题
摘要:书里面的例题,这里记录一下代码。 如下图所示,给出一个N*M的迷宫图和一个入口、一个出口。编序打印一条从迷宫入口到出口的路径。这里黑色方块的单元表示走不通(用-1表示),白色方块的单元表示可以走(用0表示)。只能往上、下、左、右四个方向走。如果无路则输出“no way.”。 【算法分析】 只要输出一 阅读全文

posted @ 2017-07-24 11:38 华山青竹 阅读(780) 评论(0) 推荐(0) 编辑

openjudge-最好的草
摘要:http://noi.openjudge.cn/ch0108/17/ 奶牛Bessie计划好好享受柔软的春季新草。新草分布在R行C列的牧场里。它想计算一下牧场中的草丛数量。 在牧场地图中,每个草丛要么是单个“#”,要么是有公共边的相邻两个“#”。给定牧场地图,计算有多少个草丛。 例如,考虑如下5行6 阅读全文

posted @ 2016-07-12 14:21 华山青竹 阅读(2335) 评论(0) 推荐(1) 编辑

回溯法解决八皇问题
摘要:把八个皇后放在一个8*8的棋盘上面,要求同一行、同一列、同一对角线不能有两个皇后。思路:关键在于判定两个皇后是否在同一行、同一列或同一对角线上。这里,棋盘下标从1开始算起。观察发现:若是在同一行,则行号相同;若在同一列,则列号相同;若在同一“/”对角线,则行列值之和相同;若是在同一“\”对角线,则行 阅读全文

posted @ 2016-02-20 12:33 华山青竹 阅读(474) 评论(0) 推荐(0) 编辑

自然数的拆分
摘要:题目链接 洛谷2404 【问题描述】自然数的拆分:任何一个大于1的自然数N,总可以拆分成若干个自然数之和,并且有多种拆分方法。试求 n的所有拆分。例如自然数5,可以有如下一些拆分方法:5=1+1+1+1+15=1+1+1+25=1+2+25=1+45=2+3 注意,本题中N拆分出来的数x的范围是1< 阅读全文

posted @ 2015-08-21 18:09 华山青竹 阅读(2642) 评论(0) 推荐(0) 编辑

有重复元素的排列问题
摘要:参考:http://blog.sina.com.cn/s/blog_9b95c19e0101aqwn.htmlDescription设R={ r1, r2, ……, rn }是要进行排列的n个元素。其中元素r1 ,r2 ,……,rn可能相同。试设计一个算法,列出R的所有不同排列。给定n以及待排列的n... 阅读全文

posted @ 2015-08-21 16:04 华山青竹 阅读(3380) 评论(0) 推荐(0) 编辑

无重复元素的排列
摘要:利用C++算法库函数实现全排列 (下面的内容是原作者整理的。) 熟悉 C++ 的朋友肯定知道另一种更简单,更完美的全排列方法。 定义于文件 <algorithm> 内的两个算法函数: next_permutation,对于当前的排列,如果在字典序中还存在下一个排列,返回真,并且把当前排列调整为下一个 阅读全文

posted @ 2015-08-21 11:35 华山青竹 阅读(821) 评论(0) 推荐(0) 编辑

质数环
摘要:输入N,将1~N这N个整数摆成一个环,使得任意相邻两个数之和都是质数。分析:递归,回溯算法的流程:递归填数:判断第i个数填入是否合法。若是合法:填数,判断是否到达目标(填入20个数字),是则打印结果,否则递归进入下一层填写下一个数字。若是不合法:选择下一种可能进行尝试。代码如下:(不足之处在于:这里... 阅读全文

posted @ 2015-08-21 10:05 华山青竹 阅读(672) 评论(0) 推荐(0) 编辑

【递归练习】放苹果
摘要:http://www.cnblogs.com/dongsheng/archive/2012/08/15/2640468.html Description 把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 Input 阅读全文

posted @ 2014-06-21 17:34 华山青竹 阅读(4835) 评论(1) 推荐(2) 编辑

生成n个数的全排列【递归、回溯】
摘要:下面是我自己按照自己的理解做的,其实有点浪费空间了: 1 #include<stdio.h> 2 int n,count;//n表示参与排列的数据的个数,count表示不同排列的个数 3 void fun(int a[],int flag[],int i,int ans[]); 4 //原始数据存放 阅读全文

posted @ 2014-02-26 18:05 华山青竹 阅读(13040) 评论(1) 推荐(1) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示