~$ 存档

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2016年3月20日

摘要: /*------------完整代码@映雪-------------*/ /*初始化一组数据,省却输入,方便调试*/ #include using namespace std; typedef struct { int value[5];/*价值表*/ int weight[5];/*重量表*/ int num;/*数量*/ int limitw;/*最... 阅读全文
posted @ 2016-03-20 14:26 LuoTian 阅读(815) 评论(0) 推荐(0)

摘要: 位数计算: [ N*lg2 ] +1log10(2)=0.301029996 阅读全文
posted @ 2016-03-20 10:52 LuoTian 阅读(591) 评论(0) 推荐(0)

摘要: 基础知识。在经历了二重递归的演练之后,再看一重递归,显的简易多了,先看十进制转二进制: 十进制转任意进制这个代码的一个特别地方在于使用一个flag[]数组,包括0~F的一个串,如果余数是几,就把相应的flag[]中的元素移到数组中,这种手法已经是第二次看到过,对于字符串很实用! 阅读全文
posted @ 2016-03-20 10:38 LuoTian 阅读(854) 评论(0) 推荐(0)

摘要: #include "stdio.h" #include "string.h" char *str(char d[],char s[]) { char *p=d;; while(*p!='\0')p++; do { *p++=*s++; }while(*s!='\0'); *p=0; return d; } int m... 阅读全文
posted @ 2016-03-20 10:00 LuoTian 阅读(602) 评论(0) 推荐(0)

摘要: 题目:源串="abcabcabcababcabcabcababcabcab",目标串="abc",求目标串在源串中出现多少次?这题相对比较简易,用的是原始方法,调用strstr()函数,如果找到目标串,函数返回出现目标串位置的首地址,下一步再将这个指针+1转移到strstr()函数中进行下一轮的匹配 阅读全文
posted @ 2016-03-20 09:17 LuoTian 阅读(790) 评论(0) 推荐(0)

摘要: 题目:求字符串[(())]的括号是否匹配,这个题相对比较简易,也记录一下。思路,左括号就入栈,遇到右括号就出栈一个元素进行匹配判定,构造一个switch。同时,设置一个监视flag,初始置1,一旦不匹配就将之置为0,也就是以后就不用再比较了。 阅读全文
posted @ 2016-03-20 08:37 LuoTian 阅读(673) 评论(0) 推荐(0)

2016年3月19日

摘要: 题目:集合A={1,2,3,5},从中任取几个数相加等于10,并打印各得哪几个数?补充参照:http://www.cnblogs.com/tinaluo/p/5294341.html上午弄明白了幂集的问题,不得不说这是一个极大的突破!只要把这个思路缕清楚了,就可以解很多问题。幂集问题,简而言之就是穷 阅读全文
posted @ 2016-03-19 16:03 LuoTian 阅读(313) 评论(0) 推荐(0)

摘要: 占位 阅读全文
posted @ 2016-03-19 09:48 LuoTian 阅读(216) 评论(0) 推荐(0)

摘要: 我一直在想着这个事,早晨起来五六点,躺在床上冥想。突然悟解了,真如某些书上写的,大道不过三言两语,说破一文不值。还是按照老方法,把问题最大程度的精简,现在求集合A={a,b}的幂集,只有两个元素,应该有{a,b},{a},{b},{x}四种可能。如果把这两个元素弄清楚了,其余的也都一样, 仅仅是数量 阅读全文
posted @ 2016-03-19 09:17 LuoTian 阅读(1273) 评论(0) 推荐(0)

2016年3月18日

摘要: /*摘自书本,这种算法很绕!*/ 阅读全文
posted @ 2016-03-18 04:33 LuoTian 阅读(303) 评论(0) 推荐(0)

摘要: 先把问题做最大程度的简化,不用框一个50*50的大迷宫,只需要压缩在3*3的二维数组中模拟,这个弄清楚了,再大的也是一样。移动方向只包括下移和右移两种方式。先下移,再右移。在这个二维数组中,约定规则:0表示通路,-1表示路径(可通过),1表示障碍物。于是得到一个二维数组的形式如下:(由于四周需要障碍 阅读全文
posted @ 2016-03-18 01:27 LuoTian 阅读(541) 评论(0) 推荐(0)

2016年3月17日

摘要: /*-----深度优先搜索----全排列--------*/ #include using namespace std; int a[10],book[10],n; void dfs(int step)/*step第几个盒子*/ { int i; if(step==n+1) { for(i=1;i>n; dfs(1); return 0... 阅读全文
posted @ 2016-03-17 22:57 LuoTian 阅读(566) 评论(0) 推荐(0)

摘要: /*-------完整代码----映雪-------*/ #include using namespace std; void sort(int left,int right,int a[]) { int i,j,t,temp; if(left>right) return; temp=a[left]; i=left; j=right; ... 阅读全文
posted @ 2016-03-17 07:50 LuoTian 阅读(217) 评论(0) 推荐(0)

摘要: 计算数组长度 int a[]={1,2,3,5,6}; int Length=sizeof(a)/sizeof(int); 交换a和b的值,不借用辅助变量 a=a+b; b=a-b; a=a-b; 将0~9的字符转化为整数 char a='1'; a=a-'0'; 相同的case结果合并 switc 阅读全文
posted @ 2016-03-17 04:55 LuoTian 阅读(274) 评论(0) 推荐(0)

2016年3月16日

摘要: 图由数据元素和连接数据元素的线构成。在图中数据元素称为顶点(Vertex),连接顶点的线称为边(Edge)。一个图是由顶点集合和边集合组成的。一般记为形式:G=(V,E),或G=(V(G),E(G))。 1.有向图和无向图无向图:边没有方向。例(V1,V2),也可写为(V2,V1)。有向图:边有方向 阅读全文
posted @ 2016-03-16 22:59 LuoTian 阅读(491) 评论(0) 推荐(0)

摘要: 穷举的一种应用,计算x+2y+3z=50的非负整数解。先约束每个变量的最大值,x=50,y=25,z=50/3。 阅读全文
posted @ 2016-03-16 09:21 LuoTian 阅读(281) 评论(0) 推荐(0)

摘要: 占位 阅读全文
posted @ 2016-03-16 09:16 LuoTian 阅读(184) 评论(0) 推荐(0)

摘要: 计算1+2*3=,这个程序还是比较绕的,先将程序简化,只做+-*/和=五个运算符的关系。首先,假定这五个运算符中,=号的优先级最低,其次是+-,最高为*/。接着约定,"1+2*3=",为字符串。 第一步,将=号入栈,作为栈底。然后,再依次进行后续的比较。约定:栈顶符号<字符串符号,则字符串符号入栈。 阅读全文
posted @ 2016-03-16 08:35 LuoTian 阅读(295) 评论(0) 推荐(0)

2016年3月15日

摘要: 基本结构: 创建 第一种:先初始化,再创建链表。在初始中,让头结点的next为NULL; 第二种:不初始化,直接创建,又分为以下几种。<1>尾插法,假如创建n个结点。(从前往后建立结点,推荐!) <2>头插法:不需要额外的指针、 插入和删除插入:在第i个位置处插入数据,游标p移到第i-1个位置(也即 阅读全文
posted @ 2016-03-15 20:05 LuoTian 阅读(487) 评论(0) 推荐(0)

摘要: 不带头结点,需要创建n个结点,包括三个指针,头指针head,一个游标指针p和创建结点的s.... 阅读全文
posted @ 2016-03-15 04:48 LuoTian 阅读(2102) 评论(0) 推荐(0)