<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ 结构之美 算法之道]]></title><description><![CDATA[要么读书，要么旅行，身体和灵魂必须有一个在路上]]></description><link>https://blog.youkuaiyun.com/u012198382</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u012198382]]></copyright><item><title><![CDATA[单向链表逆转（带头结点）的两种方法]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/79369932</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/79369932</guid><author>u012198382</author><pubDate>Sun, 25 Feb 2018 16:57:25 +0800</pubDate><description><![CDATA[#include&amp;lt;iostream&amp;gt;
#include&amp;lt;cstdio&amp;gt;
#include&amp;lt;cstring&amp;gt;
using namespace std;


struct Node
{
    struct Node * next;
    int v;
};


// 创建带头结点的单向链表
Node * getLinkList()
{
    Node* hea...]]></description><category></category></item><item><title><![CDATA[基于ODPS的SQL语句]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/77232530</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/77232530</guid><author>u012198382</author><pubDate>Wed, 16 Aug 2017 11:00:35 +0800</pubDate><description><![CDATA[（一）基本概念

1.ODPS：Open Data Processing Service， 简称ODPS；是由阿里云自主研发，提供针对TB/PB级数据、实时性要求不高的分布式处理能力，应用于数据分析、挖掘、商业智能等领域；阿里巴巴的离线数据业务都运行在ODPS上；


2.御膳房：基于ODPS的一个应用模型；基于公共云计算的数据管理、计算和交换平台，为政府机构、企业、科研机构、第三方软件]]></description><category></category></item><item><title><![CDATA[Kaggle入门赛之Digit Recognizer]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/64907162</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/64907162</guid><author>u012198382</author><pubDate>Wed, 22 Mar 2017 12:29:44 +0800</pubDate><description><![CDATA[题目大意：手写数字的识别。每个数字由28*28的像素矩阵表示，也就是784个像素点。每个像素点的值between 0 and 255。
思路：knn在数字识别方面表现比较好，我采用的是基于ball_tree的knn。每个像素的值都归一化，非0值都变成1。
工具：py2.7，sklearn，pycharm
# -*- coding: utf-8 -*-
import csv
import nu]]></description><category></category></item><item><title><![CDATA[PAT Head of a Gang]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/56291336</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/56291336</guid><author>u012198382</author><pubDate>Tue, 21 Feb 2017 18:16:15 +0800</pubDate><description><![CDATA[题目大意：对于一个给定的无向图，求出所有的连通分量。还有连通分量中包含的信息：head和总点数。一个连通分量的总边长要大于阈值才合法，head是一个连通分量中相邻边总长度最大的点。输出顺序要按照字典序(姓名)。
思路：采用BFS或DFS都可以求出连通分量。字符串到id映射直接用Map就可以了。注意是无向图，两个点之间不同方向的边算一条边(边长等于两边之和)。
#include
#include]]></description><category></category></item><item><title><![CDATA[PAT  Build A Binary Search Tree]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/55271647</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/55271647</guid><author>u012198382</author><pubDate>Thu, 16 Feb 2017 20:33:24 +0800</pubDate><description><![CDATA[题目大意：对于一个给定的二叉树，给一个序列，把这个序列中的数字填入此二叉树，使此二叉树为二叉排序树。
思路：
1)保证此二叉树为BST->二叉树中序遍历序列有序则为BST->把有序序列按中序遍历插入树中
2)output层次遍历序列


#include
#include
#include
#include
#include
#include
#include
#include
#in]]></description><category></category></item><item><title><![CDATA[ACM退役贴]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/49907795</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/49907795</guid><author>u012198382</author><pubDate>Wed, 18 Nov 2015 16:44:54 +0800</pubDate><description><![CDATA[打完北京站的比赛，三年的acm生涯结束了。以前经常看各路巨巨的退役贴，没想到这么快便从看客变成了写者。四场区域赛，两铜两铁，在大牛云集的acmer中实在是弱的不行。作为弱校的acmer，搞acm确实是一件心酸的事情，但我相信每个搞过acm的都不曾后悔。记得最初开始接触acm是在大一上学期10月份时，学姐和我说有个团队的宣讲会，然后就稀里糊涂的去了，去之前我连acm都没听说过，编程更是一点也不会。当]]></description><category></category></item><item><title><![CDATA[codeforces#321 B(排序+二分)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48706515</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48706515</guid><author>u012198382</author><pubDate>Thu, 24 Sep 2015 09:24:17 +0800</pubDate><description><![CDATA[题意：n个人，每个人有money和friendship，求最大的friendship和，要求所选的人money之差小于d
思路：先按money排序，然后扫一遍，两个指针l,r记录当前二分范围，Prem记录当前所选人中最小的money。
注意：如果二分找到k，a[i].m-d>=a[k].m，当前t就等于a[i].m。r
#include
#include
#include
#include
]]></description><category></category></item><item><title><![CDATA[poj1743 Musical Theme(后缀数组+二分判定)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48469439</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48469439</guid><author>u012198382</author><pubDate>Tue, 15 Sep 2015 16:25:40 +0800</pubDate><description><![CDATA[题意：求不重叠最长重复子串
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll __int64
using namespace std;
const int INF=0x3fffffff;
const int maxn =2000]]></description><category></category></item><item><title><![CDATA[后缀数组模板]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48444405</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48444405</guid><author>u012198382</author><pubDate>Mon, 14 Sep 2015 19:36:43 +0800</pubDate><description><![CDATA[#include 
using namespace std;
const int  maxn =100005*2;
/*
字符要先转化为正整数
待排序的字符串放在r 数组中，从r[0]到r[n-1]，长度为n，且最大值小于m。
所有的r[i]都大于0,r[n]无意义算法中置0
函数结束后，结果放在sa 数组中(名次从1..n)，从sa[1]到sa[n]。s[0]无意义
*/
int cmp(int]]></description><category></category></item><item><title><![CDATA[POJ2774 Long Long Message(后缀数组入门题)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48444321</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48444321</guid><author>u012198382</author><pubDate>Mon, 14 Sep 2015 19:33:33 +0800</pubDate><description><![CDATA[题意：求两个字符串的最长公共连续子串


#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll __int64
#define maxn 200010
using namespace std;
const int INF=0x3]]></description><category></category></item><item><title><![CDATA[hdu5327 Olympiad(数组前缀和+set判重)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48241125</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48241125</guid><author>u012198382</author><pubDate>Sun, 06 Sep 2015 10:44:19 +0800</pubDate><description><![CDATA[题意：美丽的数字：每一位数都不相同。求区间内美丽数字个数。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll __int64
using namespace std;
const int INF=0x3fffffff;

int]]></description><category></category></item><item><title><![CDATA[hdu5328 Problem Killer(dp)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48239703</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48239703</guid><author>u012198382</author><pubDate>Sun, 06 Sep 2015 09:11:47 +0800</pubDate><description><![CDATA[题意：给一个序列a，求最长的子串长度，子串必须是等差或者等比数列。
注意：不要开数组，不然会TLE。


#include
#include
#include
#include
#include
#define ll __int64
using namespace std;

int ap;
int gp;

int Max(int a,int b)
{
    return a>b ?a]]></description><category></category></item><item><title><![CDATA[hdu5319 Painter(模拟)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48174249</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48174249</guid><author>u012198382</author><pubDate>Wed, 02 Sep 2015 09:54:01 +0800</pubDate><description><![CDATA[题意：刷墙，两把刷子，只能沿对角线刷，并且一次必须刷完一条线。红色刷子沿'\' 方向，蓝色刷子沿'/'方向，都刷到的格子为绿色。给出最终状态，求最少需要刷多少次可以达到。
思路：对于'\'，如果当前格子为红色或者绿色，前一个格子(斜线上的)既不是红色也不是绿色，则必然要刷一次。同理，'/'上的也是。


#include
#include
#include
#include
#includ]]></description><category></category></item><item><title><![CDATA[hdu5316 Magician(线段树区间合并)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48160907</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48160907</guid><author>u012198382</author><pubDate>Tue, 01 Sep 2015 17:40:29 +0800</pubDate><description><![CDATA[题意：
T组数据
n个数，m个操作,0表示把位置a上的数改成b,1表示求区间[a,b]的最大的美丽子串和
美丽子串：相邻元素下标奇偶性不同，序列可不连续。


#include
#include
#include
#define LL __int64
#define lson rt<<1
#define rson rt<<1|1
using namespace std;

const ]]></description><category></category></item><item><title><![CDATA[hdu3911 Black And White(线段树区间合并)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48154127</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48154127</guid><author>u012198382</author><pubDate>Tue, 01 Sep 2015 10:04:14 +0800</pubDate><description><![CDATA[题意：给一个由0,1组成的序列，有两种操作，一种是翻转给定区间的数(0->1,1->0)，另一种是查询给定区间内由1组成的子串的最大长度。重点在区间合并和延迟标记。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0x3fffffff
usi]]></description><category></category></item><item><title><![CDATA[hdu5326 Work(树形dp)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48085701</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48085701</guid><author>u012198382</author><pubDate>Sat, 29 Aug 2015 10:54:59 +0800</pubDate><description><![CDATA[题意：n个人，有n-1个关系，表示A管理B，求管理人数为K的人数。（间接上司也算上司）
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll __int64
#define INF 0x3fffffff
using namespace std;

i]]></description><category></category></item><item><title><![CDATA[hdu5317 RGCDQ(dp)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/48025935</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/48025935</guid><author>u012198382</author><pubDate>Thu, 27 Aug 2015 12:46:53 +0800</pubDate><description><![CDATA[题意：F(x)表示数x质因子的个数，对于给定的区间(L,R)，求maxGcd(F(i),F(j)) (l
思路：打表。2*3*5*7*11*13*17*19>MAXN，所以一个数最多只有7个质因子。
#include
#include
#include
#define MAXN 1000010
using namespace std;

int isp[MAXN];
int sum[MAXN]]]></description><category></category></item><item><title><![CDATA[Google APAC 2016 University Graduates Test(google校招笔试)]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/47703169</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/47703169</guid><author>u012198382</author><pubDate>Sun, 16 Aug 2015 16:25:05 +0800</pubDate><description><![CDATA[Problem A. Bad Horse

题意：给n个关系，每个关系有两个人，要求把这些人分成两组，每组里的人之间都没有关系。
二分图染色即可。关系=边，人=点。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll __int64
#def]]></description><category></category></item><item><title><![CDATA[python字符串前缀 u和r的区别]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/46591371</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/46591371</guid><author>u012198382</author><pubDate>Mon, 22 Jun 2015 09:19:25 +0800</pubDate><description><![CDATA[（1）以r或R开头的python中的字符串表示（非转义的）原始字符串

python里面的字符，如果开头处有个r，比如：

(r’^time/plus/\d{1,2}/$’, hours_ahead)

说明字符串r"XXX"中的XXX是普通字符。

有普通字符相比，其他相对特殊的字符，其中可能包含转义字符，即那些，反斜杠加上对应字母，表示对应的特殊含义的，比如最常见的”\n"表示]]></description><category></category></item><item><title><![CDATA[坐标离散化技巧]]></title><link>https://blog.youkuaiyun.com/u012198382/article/details/45249947</link><guid>https://blog.youkuaiyun.com/u012198382/article/details/45249947</guid><author>u012198382</author><pubDate>Fri, 24 Apr 2015 18:03:00 +0800</pubDate><description><![CDATA[题目：w*h的格子上画了n条垂直或水平的宽度为1的直线。求出这些线将格子划分成了多少个区域。
1<=w,h<=1000000.     1<=n<=500
思路：首先，一般会想到直接进行dfs或bfs，但w,h过大，无法直接搜索。坐标离散化的思想就是把有用的坐标提取出来，再建一个坐标系，把这些坐标按照顺序放在这个坐标系中。本题只需存储直线的x,y坐标和直线前后的。所以大小6n*6n就够了。]]></description><category></category></item></channel></rss>