<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小梁的编程学习之旅]]></title><description><![CDATA[本博客主要是为了促进编程学习，不断总结知识，希望在未来的日子做一个合格的好码农]]></description><link>https://blog.youkuaiyun.com/Matthew_lk</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Matthew_lk]]></copyright><item><title><![CDATA[POJ 1699- Best Sequence （DFS+查表法）]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/71440864</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/71440864</guid><author>Matthew_lk</author><pubDate>Tue, 09 May 2017 16:57:46 +0800</pubDate><description><![CDATA[题目链接
题目大意：
    给定N个基因片段，每个片段的长度在1到20之间，注意：每个片段长度不一样啊，我一开始以为都为N！求去除重叠基因后字符串的总长最小值


解题思路：
    全排列问题啊！将所有的基因片段全排列，两两计算重复的字母个数（模拟即可），最后计算出去除重复基因总长，选择最小值。
典型的DFS问题，但是就因为计算两个基因片段的重复字母数，整整搞了一天！现在看来还是]]></description><category></category></item><item><title><![CDATA[POJ 1321-棋盘问题(DFS)]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/71480433</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/71480433</guid><author>Matthew_lk</author><pubDate>Tue, 09 May 2017 16:47:32 +0800</pubDate><description><![CDATA[题目链接


题目大意:
    中文题目无需解释吧!


解题思路
    利用DFS按行扫描即可，注意是 "#"的地方才能放棋子，可能有的行没有"#"，也可能可以放棋子的地方多于棋子数。题目中遇到比较坑爹的地方就是-每一行都可以放或不放棋子，就因为没有考虑到这种情况，导致提交代码一直WA。


#include 
#include "stdio.h"
using name]]></description><category></category></item><item><title><![CDATA[POJ 2362 Square-(DFS+ 剪枝)]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/71440745</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/71440745</guid><author>Matthew_lk</author><pubDate>Tue, 09 May 2017 11:56:58 +0800</pubDate><description><![CDATA[题目链接


题目大意:
    给定一组木棍长度的数据,求是否能拼成一个正方形.


解题思路:
    简单的DFS遍历就好了,但是本题要考虑剪枝
    1）当所有木棍长度和sum, 需要满足sum%4 = 0，否则拼不成正方形。
    2）最长的木棍要满足小于边长side = sum / 4。
    在1）2）条件下进行DFS遍历，可以减小时间复杂度。


]]></description><category></category></item><item><title><![CDATA[POJ 1416-Shredding Company]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/71216392</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/71216392</guid><author>Matthew_lk</author><pubDate>Fri, 05 May 2017 17:37:25 +0800</pubDate><description><![CDATA[题目大意:
公司现在要发明一种新的碎纸机，要求新的碎纸机能够把纸条上的数字切成最接近而不超过target值。比如，target的值是50，而纸条上的数字是12346，应该把数字切成四部分，分别是1、2、34、6。因为这样所得到的和43 (= 1 + 2 + 34 + 6) 是所有可能中最接近而不超过50的。（比如1, 23, 4, 和6 就不可以,因为它们的和不如43接近50，而12, 34, ]]></description><category></category></item><item><title><![CDATA[POJ 2531-Network Saboteur(DFS)]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/71213310</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/71213310</guid><author>Matthew_lk</author><pubDate>Fri, 05 May 2017 17:07:37 +0800</pubDate><description><![CDATA[题目链接


题目大意:
将一个图的节点分为两部分,求两部分的通信距离最大.


解题思路:
竟然做了好几个小时,提交到POJ上超时,下面给出代码
首先我们将所有的点标记为0(即所有点放在一个集合里)，然后取出一个site标记为1(即将该点放在另一个集合里)，这是对于和site在一个集合里的点，我们减去他们两个之间的权值，对于不在一个集合里的点，我们加上他们之间的权值。最后的结果]]></description><category></category></item><item><title><![CDATA[POJ-3278 Catch That Cow]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/71171510</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/71171510</guid><author>Matthew_lk</author><pubDate>Thu, 04 May 2017 16:13:48 +0800</pubDate><description><![CDATA[题目见链接:原题


大致题意:
给定两个整数n和k
通过 n+1或n-1 或n*2 这3种操作，使得n==k
输出最少的操作次数


解题思路：
用BFS遍历，只需得到一个最小解就行。
 
注意的地方：
1  剪枝。直接广搜一样等着RE吧= = ，判断下一步是否超出边界，即大于100000或者小于0，否则RE。


BFS有固定的解题思路：
定义一个队列，然后取]]></description><category></category></item><item><title><![CDATA[POJ 1915 - Knight Moves]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/70740599</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/70740599</guid><author>Matthew_lk</author><pubDate>Tue, 25 Apr 2017 16:16:07 +0800</pubDate><description><![CDATA[﻿﻿

Knight Moves




Time Limit: 1000MS
 
Memory Limit: 30000K


Total Submissions: 23833
 
Accepted: 11202





Description 

Background 
Mr Somurolov, fabulous chess-gamer ind]]></description><category></category></item><item><title><![CDATA[POJ 1979 - Red and Black]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/70544105</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/70544105</guid><author>Matthew_lk</author><pubDate>Sun, 23 Apr 2017 20:05:19 +0800</pubDate><description><![CDATA[Red and Black




Time Limit: 1000MS
 
Memory Limit: 30000K


Total Submissions: 34958
 
Accepted: 18918




Description

There is a rectangular room, covered with square tiles. Eac]]></description><category></category></item><item><title><![CDATA[数组指针与指针数组]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/52267536</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/52267536</guid><author>Matthew_lk</author><pubDate>Sun, 21 Aug 2016 15:38:40 +0800</pubDate><description><![CDATA[数组指针（也称行指针）
定义 int (*p)[n];
()优先级高，首先说明p是一个指针，指向一个整型的一维数组，这个一维数组的长度是n，也可以说是p的步长。也就是说执行p+1时，p要跨过n个整型数据的长度。

如要将二维数组赋给一指针，应这样赋值：
int a[3][4];
int (*p)[4]; //该语句是定义一个数组指针，指向含4个元素的一维数组。
 p=a;]]></description><category></category></item><item><title><![CDATA[剑指offer-面试题7]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/52142204</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/52142204</guid><author>Matthew_lk</author><pubDate>Sun, 07 Aug 2016 12:34:45 +0800</pubDate><description><![CDATA[题目：用两个栈模拟队列




/**********************
* 面试题7 ：用栈模拟队列
***********************/

template  class CQueue
{
public:
	CQueue(void);
	~CQueue(void);
	
	void appendTail(const T& node);
	T deleteHead()]]></description><category></category></item><item><title><![CDATA[剑指offer-面试题6]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/52141561</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/52141561</guid><author>Matthew_lk</author><pubDate>Sun, 07 Aug 2016 10:59:31 +0800</pubDate><description><![CDATA[题目： 输入某二叉树的前序遍历和中序遍历的结果，请重建出该二叉树。
解题思路：递归实现
/**********************
* 面试题6 ： 重建二叉树
***********************/

struct BinaryTreeNode
{
	int								Value;
	BinaryTreeNode*		pLeft;
	BinaryTreeNode*		pRi]]></description><category></category></item><item><title><![CDATA[剑指offer-面试题5]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/52141292</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/52141292</guid><author>Matthew_lk</author><pubDate>Sun, 07 Aug 2016 10:57:18 +0800</pubDate><description><![CDATA[在完成第五题之前我想先复习一下链表的基本操作如下：
/**************************
	struct ListNode 
	{
		int 			Value;
		ListNode* pNext;
	}
***************************/

// 链表尾插法
// 注意头指针pHead的定义
// 判断链表是否为空
void AddToTail(Lis]]></description><category></category></item><item><title><![CDATA[GDB十分钟教程]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/52107019</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/52107019</guid><author>Matthew_lk</author><pubDate>Wed, 03 Aug 2016 20:12:52 +0800</pubDate><description><![CDATA[GDB十分钟教程

作者: liigo
原文链接: http://blog.youkuaiyun.com/liigo/archive/2006/01/17/582231.aspx
日期: 2006年1月16日

本文写给主要工作在Windows操作系统下而又需要开发一些跨平台软件的程序员朋友，以及程序爱好者。

GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的]]></description><category></category></item><item><title><![CDATA[Linux makefile 教程]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/52105525</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/52105525</guid><author>Matthew_lk</author><pubDate>Wed, 03 Aug 2016 17:18:43 +0800</pubDate><description><![CDATA[最近在学习Linux下的C编程，买了一本叫《Linux环境下的C编程指南》读到makefile就越看越迷糊，可能是我的理解能不行。

            于是google到了以下这篇文章。通俗易懂。然后把它贴出来，方便学习。

           后记，看完发现这篇文章和《Linux环境下的C编程指南》的makefile一章所讲述的惊人的相似，只是这篇文章从一个实例切入，在有些地方比]]></description><category></category></item><item><title><![CDATA[CCTYPE函数系列]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/51923018</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/51923018</guid><author>Matthew_lk</author><pubDate>Sat, 16 Jul 2016 10:21:51 +0800</pubDate><description><![CDATA[#include 的函数






c++中应该是#include 
c中应该是#include 
以下为字符函数库中常用的函数：






函数名称
返回值


isalnum()
如果参数是字母数字，即字母或数字，该函数返回true


isalpha()
如果参数是字母，该函数返回真


isblank()
如果参数是空格或水平制]]></description><category></category></item><item><title><![CDATA[LeetCode(41)-First Missing Positive]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/51862806</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/51862806</guid><author>Matthew_lk</author><pubDate>Fri, 08 Jul 2016 17:35:51 +0800</pubDate><description><![CDATA[问题描述：


问题分析：


问题求解：]]></description><category></category></item><item><title><![CDATA[(5) linux中环境变量PATH设置]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/51009234</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/51009234</guid><author>Matthew_lk</author><pubDate>Tue, 29 Mar 2016 21:15:08 +0800</pubDate><description><![CDATA[最近在Ubuntu系统下安装QT4和嵌入式开发环境，由于对linux系统不是特别熟悉，状况不断，问题最多的应该是环境变量的设置。安装的程序包在调用时经常报错，找不到命令，这时应该就是环境变量的设置问题，所以对linux环境变量PATH设置需要总结一下，以后减少这方面的问题。
操作系统：Ubuntu 14.04 
1、用export命令设置当前session的PATH
在登录用户为Matthe]]></description><category></category></item><item><title><![CDATA[(5) linux中环境变量PATH设置]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/51009077</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/51009077</guid><author>Matthew_lk</author><pubDate>Tue, 29 Mar 2016 20:28:11 +0800</pubDate><description><![CDATA[最近在Ubuntu系统下安装QT4和嵌入式开发环境，由于对linux系统不是特别熟悉，状况不断，问题最多的应该是环境变量的设置。安装的程序包在调用时经常报错，找不到命令，这时应该就是环境变量的设置问题，所以对linux环境变量PATH设置需要总结一下，以后减少这方面的问题。
操作系统：Ubuntu 14.04 
1、用export命令设置当前session的PATH
在登录用户为Matthe]]></description><category></category></item><item><title><![CDATA[(4)在Ubuntu下创建 QT4嵌入式开发环境]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/50985876</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/50985876</guid><author>Matthew_lk</author><pubDate>Sat, 26 Mar 2016 11:27:29 +0800</pubDate><description><![CDATA[[1]  
QT download
[2] 
在Ubuntu上创建嵌入式ARM开发环境

[3] 
Ubuntu下 嵌入式Qt开发环境的搭建]]></description><category></category></item><item><title><![CDATA[(3) 嵌入式Linux开发环境的构建]]></title><link>https://blog.youkuaiyun.com/Matthew_lk/article/details/50961810</link><guid>https://blog.youkuaiyun.com/Matthew_lk/article/details/50961810</guid><author>Matthew_lk</author><pubDate>Wed, 23 Mar 2016 12:07:51 +0800</pubDate><description><![CDATA[1 主机与目标板结合的交叉开发模式
    对于S3C2440开发板，进行嵌入式Linux开发时一般可以分为一下3个步骤。
    （1）在主机上编译Bootloader，然后通过JTAG烧入单板。
    通过JTAG接口烧写程序效率非常低，适合于烧写空白单板。Bootloader具有串口传输、网络传输、少些flash功能，可以快速地从主机获取可执行代码，然后烧入单板，或直接运行。
  ]]></description><category></category></item></channel></rss>