<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[nodeee的博客]]></title><description><![CDATA[个人博客：kaispace.com.cn]]></description><link>https://blog.youkuaiyun.com/johnwayne0317</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; johnwayne0317]]></copyright><item><title><![CDATA[深搜与广搜]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/87896817</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/87896817</guid><author>johnwayne0317</author><pubDate>Sat, 23 Feb 2019 20:38:39 +0800</pubDate><description><![CDATA[深搜
深搜是一种一条路走到黑，碰壁就倒退的算法。运用递归思想，如果到了不符合条件的节点就撤回一步，然后再选择另一条路走下去。如果这个节点的所有路径都走完了，再撤回一步。
//最简单的模板
int x[4]={0,1,0,-1};
int y[4]={1,0,-1,0};//上下左右四个方向走。也可以八个方向，这里我就不写了。

void dfs(int fx,int fy){//fx，fy是现在的...]]></description><category></category></item><item><title><![CDATA[RMQ问题]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/86889169</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/86889169</guid><author>johnwayne0317</author><pubDate>Sun, 10 Feb 2019 10:30:46 +0800</pubDate><description><![CDATA[题目：忠诚
解题思路
代码里有
代码
#include &amp;lt;iostream&amp;gt;
#include &amp;lt;cmath&amp;gt;//cmath库下有log()和log2()等
#include &amp;lt;algorithm&amp;gt;//algorithm用来做max(),min()
using namespace std;
int a[100010];
int dp[100010][30];//...]]></description><category></category></item><item><title><![CDATA[FBI树]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/86763055</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/86763055</guid><author>johnwayne0317</author><pubDate>Mon, 04 Feb 2019 13:33:04 +0800</pubDate><description><![CDATA[题目描述

我们可以把由“0”和“1”组成的字符串分为三类：全“0”串称为B串，全“1”串称为I串，既含“0”又含“1”的串则称为F串。
FBI树是一种二叉树，它的结点类型也包括F结点，B结点和I结点三种。由一个长度为2^N的“01”串S可以构造出一棵FBI树T，递归的构造方法如下：


T的根结点为R，其类型与串S的类型相同；


若串S的长度大于1，将串S从中间分开，分为等长的左右子串S1和S...]]></description><category></category></item><item><title><![CDATA[新二叉树]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/86763052</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/86763052</guid><author>johnwayne0317</author><pubDate>Mon, 04 Feb 2019 13:32:07 +0800</pubDate><description><![CDATA[题目描述
输入一串二叉树，用遍历前序打出。
输入格式：
第一行为二叉树的节点数n。(n≤26)
后面n行，每一个字母为节点，后两个字母分别为其左右儿子。
空节点用*表示
输出格式：
前序排列的二叉树
输入样例1：
6
abc
bdi
cj*
d**
i**
j**
输出样例1：
abdicj
解题思路
也是直接上代码。
代码
#include &amp;lt;iostream&amp;gt;
#include &amp;...]]></description><category></category></item><item><title><![CDATA[我的个人博客！]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/86695858</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/86695858</guid><author>johnwayne0317</author><pubDate>Tue, 29 Jan 2019 21:18:14 +0800</pubDate><description><![CDATA[kaispace.com.cn
欢迎来访！

]]></description><category></category></item><item><title><![CDATA[求先序排列]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/85853776</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/85853776</guid><author>johnwayne0317</author><pubDate>Sat, 05 Jan 2019 15:19:59 +0800</pubDate><description><![CDATA[题目描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。（约定树结点用不同的大写字母表示，长度≤8。
输入格式：
2行，均为大写字母组成的字符串，表示一棵二叉树的中序与后序排列。
输出格式：
1行，表示一棵二叉树的先序。
输入样例1：
BADC
BDCA
输出样例1：
ABCD
解题思路
就是一个先中后序遍历的问题，看代码吧，有标注示。
代码
#include &amp;lt;iostream&amp;gt;...]]></description><category></category></item><item><title><![CDATA[USACO Prime Cryptarithm 牛式]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/85037319</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/85037319</guid><author>johnwayne0317</author><pubDate>Sun, 16 Dec 2018 15:13:08 +0800</pubDate><description><![CDATA[题目描述
农夫约翰的奶牛不停地从他的农场中逃出来，导致了很多损害。为了防止它们再逃出来，他买了一只很大的号码锁以防止奶牛们打开牧场的门。
农夫约翰知道他的奶牛很聪明，所以他希望确保它们不会在简单地试了很多不同的号码组合之后就能轻易开锁。锁上有三个转盘，每个上面有数字1…N (1 &amp;lt;= N &amp;lt;= 100)，因为转盘是圆的，所以1和N是相邻的。有两种能开锁的号码组合，一种是农夫约翰设定的，...]]></description><category></category></item><item><title><![CDATA[树状数组（区间修改单点查询）洛谷：树状数组2]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/85037014</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/85037014</guid><author>johnwayne0317</author><pubDate>Sun, 16 Dec 2018 14:49:21 +0800</pubDate><description><![CDATA[模版和单点修改区间查询差不多
树状数组（单点修改区间查询）
https://blog.youkuaiyun.com/johnwayne0317/article/details/84927585
然后用到了差分数组
https://blog.youkuaiyun.com/johnwayne0317/article/details/84928568
代码


#include &amp;lt;bits/stdc++.h&amp;gt;
us...]]></description><category></category></item><item><title><![CDATA[USACO Barn Repair 修理牛棚]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/85019038</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/85019038</guid><author>johnwayne0317</author><pubDate>Sat, 15 Dec 2018 21:57:27 +0800</pubDate><description><![CDATA[题目描述
在一个夜黑风高,下着暴风雨的夜晚,farmer John的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假，所以牛棚没有住满。 牛棚一个紧挨着另一个被排成一行，牛就住在里面过夜。 有些牛棚里有牛，有些没有。 所有的牛棚有相同的宽度。 自门遗失以后,farmer John必须尽快在牛棚之前竖立起新的木板。 他的新木材供应商将会供应他任何他想要的长度,但是吝啬的供应商只能提供有限数目的木板。 f...]]></description><category></category></item><item><title><![CDATA[结构体排序]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84995810</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84995810</guid><author>johnwayne0317</author><pubDate>Thu, 13 Dec 2018 22:04:44 +0800</pubDate><description><![CDATA[结构体排序是一个非常重要的语句，不会的话有些题目要超级复杂的方式才能做。
什么时候使用？
如果要把两个数组以其中一个数组的形式排列例如：




价格
供应量




5
20


9
40


3
10


8
80


6
30


现在要变为




价格
供应量




3
10


5
20


6
30


8
80


9
40


怎么用？
伪代码
#inclu]]></description><category></category></item><item><title><![CDATA[USACO mixing milk 混合牛奶]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84995657</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84995657</guid><author>johnwayne0317</author><pubDate>Thu, 13 Dec 2018 21:52:45 +0800</pubDate><description><![CDATA[题目描述
由于乳制品产业利润很低，所以降低原材料（牛奶）价格就变得十分重要。帮助Marry乳业找到最优的牛奶采购方案。
Marry乳业从一些奶农手中采购牛奶，并且每一位奶农为乳制品加工企业提供的价格是不同的。此外，就像每头奶牛每天只能挤出固定数量的奶，每位奶农每天能提供的牛奶数量是一定的。每天Marry乳业可以从奶农手中采购到小于或者等于奶农最大产量的整数数量的牛奶。
给出Marry乳业每天对牛奶...]]></description><category></category></item><item><title><![CDATA[USACO dual palindromic 双重回文数]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84980311</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84980311</guid><author>johnwayne0317</author><pubDate>Wed, 12 Dec 2018 22:09:48 +0800</pubDate><description><![CDATA[题目描述
如果一个数从左往右读和从右往左读都是一样，那么这个数就叫做“回文数”。例如，12321就是一个回文数，而77778就不是。当然，回文数的首和尾都应是非零的，因此0220就不是回文数。
事实上，有一些数（如21），在十进制时不是回文数，但在其它进制（如二进制时为10101）时就是回文数。
编一个程序，从文件读入两个十进制数N (1 &amp;amp;lt;= N &amp;amp;lt;= 15)S (0 &amp;amp;lt; S ...]]></description><category></category></item><item><title><![CDATA[进制转换]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84980149</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84980149</guid><author>johnwayne0317</author><pubDate>Wed, 12 Dec 2018 21:57:27 +0800</pubDate><description><![CDATA[int a[100]//数组无法返回数组
void change(int n){
	int cnt=0;
	while(n!=0){
		a[cnt]=n%jin;
		n/=jin;
		cnt++;
	}
	return ;
}



]]></description><category></category></item><item><title><![CDATA[USACO palindromic squares 回文数平方]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84979712</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84979712</guid><author>johnwayne0317</author><pubDate>Wed, 12 Dec 2018 21:26:27 +0800</pubDate><description><![CDATA[题目描述
回文数是指从左向右念和从右向左念都一样的数。如12321就是一个典型的回文数。
给定一个进制B(2&amp;amp;amp;lt;=B&amp;amp;amp;lt;=20,由十进制表示)，输出所有的大于等于1小于等于300（十进制下）且它的平方用B进制表示时是回文数的数。用’A’,’B’……表示10，11等等
输入格式：
共一行，一个单独的整数B(B用十进制表示)。
输出格式：
每行两个B进制的符合要求的数字，第二个数是第一个数的平...]]></description><category></category></item><item><title><![CDATA[单向链表与双向链表]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84931731</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84931731</guid><author>johnwayne0317</author><pubDate>Sun, 09 Dec 2018 20:35:58 +0800</pubDate><description><![CDATA[单向链表
单向链表的特点是链表的链接方向是单向的，对链表的访问要通过顺序读取从头部开始；链表是使用指针进行构造的列表；又称为结点列表，因为链表是由一个个结点组装起来的；其中每个结点都有指针成员变量指向列表中的下一个结点；
列表是由结点构成，head指针指向第一个成为表头结点，而终止于最后一个指向NULL的指针。
双向链表
双向链表的每个数据结点中都有两个指针，分别指向前面的rlink和后面的lli...]]></description><category></category></item><item><title><![CDATA[USACO namenum 命名那个数字]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84931567</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84931567</guid><author>johnwayne0317</author><pubDate>Sun, 09 Dec 2018 20:24:35 +0800</pubDate><description><![CDATA[中文版题目：https://www.luogu.org/problemnew/show/P3864
虽然翻译得不太好，但是将就着看吧。
解题思路
这道题有点坑，有两种解题方式（一种简单，一种难）：
第一种（简单）：把名字化为数字。
第二种（困难）：把数字化为名字。
我最开始尝试的是第二种，写了半个小时想不出来，就果断放弃用第一种做。然后就做出来了
代码



...]]></description><category></category></item><item><title><![CDATA[前缀和]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84928854</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84928854</guid><author>johnwayne0317</author><pubDate>Sun, 09 Dec 2018 16:02:55 +0800</pubDate><description><![CDATA[



编号





















a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17


b









10
11
12
13






现在要从a数组中截取b数组知道b的和1000000次，而且不能够直接记下b数组的值，要一次一次算，怎么快速求？
这样看也许看不出什么，但是我再画一幅图你就明白了




编号









...]]></description><category></category></item><item><title><![CDATA[差分数组]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84928568</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84928568</guid><author>johnwayne0317</author><pubDate>Sun, 09 Dec 2018 15:36:53 +0800</pubDate><description><![CDATA[现在有数组a[7]
int a[7];
a[0]=1;
a[1]=2;
a[2]=4;
a[3]=5;
a[4]=12
a[5]=34;
a[6]=123;
a[7]=3;

如果要把a[0]-a[4]都加一，最朴素的方法就是
a[0]++;
a[1]++;
a[2]++;
a[3]++;
a[4]++;

时间复杂度为O(n)
打字打着都很费力。。。

但是如果先有一个神奇的差分数组d[7]，就...]]></description><category></category></item><item><title><![CDATA[树状数组（单点修改区间查询）]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84927585</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84927585</guid><author>johnwayne0317</author><pubDate>Sun, 09 Dec 2018 13:59:35 +0800</pubDate><description><![CDATA[
lowbit（重要！）
lowbit是用来取出二进制中最低位数的1所代表的二进制的值。
只需要记下代码就行了
int lowbit(int x){
	return x&amp;amp;amp;amp;(-x);
}

add单点修改前缀和
将一个树的最子节点修改，则其父节点也需要更改，父父节点也需要修改。x=x+lowbit(x)就是用来取出其父节点的。
void add(int x,int k){
	while(x&amp;amp;amp;...]]></description><category></category></item><item><title><![CDATA[USACO transformations 方块转换]]></title><link>https://blog.youkuaiyun.com/johnwayne0317/article/details/84758433</link><guid>https://blog.youkuaiyun.com/johnwayne0317/article/details/84758433</guid><author>johnwayne0317</author><pubDate>Mon, 03 Dec 2018 12:47:58 +0800</pubDate><description><![CDATA[题目描述
一块N x N（1&amp;amp;lt;=N&amp;amp;lt;=10）正方形的黑白瓦片的图案要被转换成新的正方形图案。写一个程序来找出将原始图案按照以下列转换方法转换成新图案的最小方式：
1：转90度：图案按顺时针转90度。
2：转180度：图案按顺时针转180度。
3：转270度：图案按顺时针转270度。
4：反射：图案在水平方向翻转（以中央铅垂线为中心形成原图案的镜像）。
5：组合：图案在水平方向翻转，然后...]]></description><category></category></item></channel></rss>