
算法练习
皮卡皮
这个作者很懒,什么都没留下…
展开
-
八皇后问题
问题描述:八皇后,在8*8的棋盘上放8个棋子,要求各个棋子的行,列,斜线之间不能有两个以上的棋子存在。问题思考:(个人思考)乍一看题,第一想到的就是回溯,每行最多一个,每行的各个列上可能存在多个解,使用一个循环回溯所有的解。源代码:#include using namespace std;#define N 8 bool matrix[原创 2017-11-18 11:39:26 · 499 阅读 · 0 评论 -
将一个数由几个数的阶乘和表示
问题描述:比如145=1!+4!+5!这样,1400就没有合适的阶乘数的和相加表示。思考:简单的回溯即可,取该数或者不取该数,不可重复。我事先先存储了前50个数的阶乘。#include using namespace std;int jiecheng(int num){if (num == 0)return 0;int sum = 1;for (int i =原创 2017-11-18 11:56:26 · 1655 阅读 · 0 评论 -
小岛问题
问题描述:比如给一个岛, 1 1 1 1 1 1 1 1 只有0的左右,上下都有1包围的时候才能算做小岛,所以这个图的小岛就是10,即中间封闭的0的格式,而两边的0都是没有封闭的, 1 0 0 0 0 0 1 1 不可计数。原创 2017-11-18 12:05:00 · 2205 阅读 · 0 评论 -
部分和问题
最近重操旧业开始攻基本的算法~第一个算法:部分和问题,语言,C++问题描述:给定整数a1,a2,a3....an,判断是否可以选出若干个数,使他们的和恰好为K。输入:n=4,a={1,2,4,7}.k=13输出: yes (13=2+4+7)原创 2017-02-06 20:49:48 · 877 阅读 · 0 评论 -
最大积水面积--宽度优先搜索的应用
问题描述:有一个大小为N*M的院子,雨后积水,八连通的积水被认为是链接在一起的。请求出园子里总共有多少水洼。输入:N=10,M=12 园子如下:W。。。。。。。。WW。。WWW。。。。。WWW。。。。WW。。。WW。。。。。。。。。。WW。。。。。。。。。。W。。。。W。。。。。。W。。。W。W。。。。。WW。W。W。W。。。。。W。。W。W。。。原创 2017-02-12 14:51:53 · 1138 阅读 · 0 评论 -
科学计数表示
问题描述:输入0.000005,输出,5e-6, 输入123.456,输出1.23456e2 ,输入100.00978,输出1.0000978e2思考:问题比较简单,要注意小数点的移动和存在多0的情况,判断0是否需要加上.C++代码:#include #include using namespace std;int main(void){string s;原创 2017-11-18 15:41:31 · 540 阅读 · 0 评论 -
字符扩展
问题描述:从键盘输入包含扩展符'-'的字符串,将其扩展为等价的完整字符,例如将a-d扩展为abcd,并输出扩展后的字符串。要求:只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只有当扩展符前后的字符同时是小写字母、大写字母或数字时才进行扩展,其它情况不进行扩展,原样输出。例如:a-R、D-e、0-b、4-B等字符串都不进行扩展。思路:比较简单就不说了。源代码:#in原创 2017-11-21 23:37:22 · 3098 阅读 · 0 评论 -
统计字符串出现的位置
问题描述:输入一行标准的c语言程序,统计其中if,while,for出现的位置.从1开始。思考:问题比较简单,照常规的思路就行,在这因为对关键字if,for,while后面肯定都会跟()的,所以只要判断(前有这些关键字就行,这是c语言的标准语法、c源代码:#include #include int main(void){char str[256];char tmp[原创 2017-11-23 19:15:34 · 651 阅读 · 0 评论