自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

结构之美 算法之道

要么读书,要么旅行,身体和灵魂必须有一个在路上

  • 博客(108)
  • 资源 (2)
  • 收藏
  • 关注

原创 ACM学习进阶计划

ACM进阶计划对ACM学习历程还感到迷茫的童鞋可以看一看,从大一到大三的所有计划,零基础照样可以参加ACM比赛,希望可以对你们有些帮助>_<

2014-04-30 12:35:05 1638 4

原创 单向链表逆转(带头结点)的两种方法

#include&lt;iostream&gt;#include&lt;cstdio&gt;#include&lt;cstring&gt;using namespace std;struct Node{ struct Node * next; int v;};// 创建带头结点的单向链表Node * getLinkList(){ Node* hea...

2018-02-25 16:57:25 1541

转载 基于ODPS的SQL语句

(一)基本概念1.ODPS:Open Data Processing Service, 简称ODPS;是由阿里云自主研发,提供针对TB/PB级数据、实时性要求不高的分布式处理能力,应用于数据分析、挖掘、商业智能等领域;阿里巴巴的离线数据业务都运行在ODPS上;2.御膳房:基于ODPS的一个应用模型;基于公共云计算的数据管理、计算和交换平台,为政府机构、企业、科研机构、第三方软件

2017-08-16 11:00:35 1036 1

原创 Kaggle入门赛之Digit Recognizer

题目大意:手写数字的识别。每个数字由28*28的像素矩阵表示,也就是784个像素点。每个像素点的值between 0 and 255。思路:knn在数字识别方面表现比较好,我采用的是基于ball_tree的knn。每个像素的值都归一化,非0值都变成1。工具:py2.7,sklearn,pycharm# -*- coding: utf-8 -*-import csvimport nu

2017-03-22 12:29:44 664

原创 PAT Head of a Gang

题目大意:对于一个给定的无向图,求出所有的连通分量。还有连通分量中包含的信息:head和总点数。一个连通分量的总边长要大于阈值才合法,head是一个连通分量中相邻边总长度最大的点。输出顺序要按照字典序(姓名)。思路:采用BFS或DFS都可以求出连通分量。字符串到id映射直接用Map就可以了。注意是无向图,两个点之间不同方向的边算一条边(边长等于两边之和)。#include#include

2017-02-21 18:16:15 422

原创 PAT Build A Binary Search Tree

题目大意:对于一个给定的二叉树,给一个序列,把这个序列中的数字填入此二叉树,使此二叉树为二叉排序树。思路:1)保证此二叉树为BST->二叉树中序遍历序列有序则为BST->把有序序列按中序遍历插入树中2)output层次遍历序列#include#include#include#include#include#include#include#include#in

2017-02-16 20:33:24 452

原创 ACM退役贴

打完北京站的比赛,三年的acm生涯结束了。以前经常看各路巨巨的退役贴,没想到这么快便从看客变成了写者。四场区域赛,两铜两铁,在大牛云集的acmer中实在是弱的不行。作为弱校的acmer,搞acm确实是一件心酸的事情,但我相信每个搞过acm的都不曾后悔。记得最初开始接触acm是在大一上学期10月份时,学姐和我说有个团队的宣讲会,然后就稀里糊涂的去了,去之前我连acm都没听说过,编程更是一点也不会。当

2015-11-18 16:44:54 1392 3

原创 codeforces#321 B(排序+二分)

题意: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

2015-09-24 09:24:17 497

原创 poj1743 Musical Theme(后缀数组+二分判定)

题意:求不重叠最长重复子串#include#include#include#include#include#include#include#include#include#include#include#define ll __int64using namespace std;const int INF=0x3fffffff;const int maxn =2000

2015-09-15 16:25:40 373

原创 后缀数组模板

#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

2015-09-14 19:36:43 409

原创 POJ2774 Long Long Message(后缀数组入门题)

题意:求两个字符串的最长公共连续子串#include#include#include#include#include#include#include#include#include#include#include#define ll __int64#define maxn 200010using namespace std;const int INF=0x3

2015-09-14 19:33:33 419

原创 hdu5327 Olympiad(数组前缀和+set判重)

题意:美丽的数字:每一位数都不相同。求区间内美丽数字个数。#include#include#include#include#include#include#include#include#include#include#include#define ll __int64using namespace std;const int INF=0x3fffffff;int

2015-09-06 10:44:19 462

原创 hdu5328 Problem Killer(dp)

题意:给一个序列a,求最长的子串长度,子串必须是等差或者等比数列。注意:不要开数组,不然会TLE。#include#include#include#include#include#define ll __int64using namespace std;int ap;int gp;int Max(int a,int b){ return a>b ?a

2015-09-06 09:11:47 477

原创 hdu5319 Painter(模拟)

题意:刷墙,两把刷子,只能沿对角线刷,并且一次必须刷完一条线。红色刷子沿'\' 方向,蓝色刷子沿'/'方向,都刷到的格子为绿色。给出最终状态,求最少需要刷多少次可以达到。思路:对于'\',如果当前格子为红色或者绿色,前一个格子(斜线上的)既不是红色也不是绿色,则必然要刷一次。同理,'/'上的也是。#include#include#include#include#includ

2015-09-02 09:54:01 863

原创 hdu5316 Magician(线段树区间合并)

题意:T组数据n个数,m个操作,0表示把位置a上的数改成b,1表示求区间[a,b]的最大的美丽子串和美丽子串:相邻元素下标奇偶性不同,序列可不连续。#include#include#include#define LL __int64#define lson rt<<1#define rson rt<<1|1using namespace std;const

2015-09-01 17:40:29 404

原创 hdu3911 Black And White(线段树区间合并)

题意:给一个由0,1组成的序列,有两种操作,一种是翻转给定区间的数(0->1,1->0),另一种是查询给定区间内由1组成的子串的最大长度。重点在区间合并和延迟标记。#include#include#include#include#include#include#include#include#include#include#define INF 0x3fffffffusi

2015-09-01 10:04:14 830 1

原创 hdu5326 Work(树形dp)

题意:n个人,有n-1个关系,表示A管理B,求管理人数为K的人数。(间接上司也算上司)#include#include#include#include#include#include#include#include#include#include#define ll __int64#define INF 0x3fffffffusing namespace std;i

2015-08-29 10:54:59 716

原创 hdu5317 RGCDQ(dp)

题意: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 1000010using namespace std;int isp[MAXN];int sum[MAXN]

2015-08-27 12:46:53 555

原创 Google APAC 2016 University Graduates Test(google校招笔试)

Problem A. Bad Horse题意:给n个关系,每个关系有两个人,要求把这些人分成两组,每组里的人之间都没有关系。二分图染色即可。关系=边,人=点。#include#include#include#include#include#include#include#include#include#include#define ll __int64#def

2015-08-16 16:25:05 2095

转载 python字符串前缀 u和r的区别

(1)以r或R开头的python中的字符串表示(非转义的)原始字符串python里面的字符,如果开头处有个r,比如:(r’^time/plus/\d{1,2}/$’, hours_ahead)说明字符串r"XXX"中的XXX是普通字符。有普通字符相比,其他相对特殊的字符,其中可能包含转义字符,即那些,反斜杠加上对应字母,表示对应的特殊含义的,比如最常见的”\n"表示

2015-06-22 09:19:25 655

原创 坐标离散化技巧

题目:w*h的格子上画了n条垂直或水平的宽度为1的直线。求出这些线将格子划分成了多少个区域。1<=w,h<=1000000. 1<=n<=500思路:首先,一般会想到直接进行dfs或bfs,但w,h过大,无法直接搜索。坐标离散化的思想就是把有用的坐标提取出来,再建一个坐标系,把这些坐标按照顺序放在这个坐标系中。本题只需存储直线的x,y坐标和直线前后的。所以大小6n*6n就够了。

2015-04-24 18:03:00 4708 13

原创 hdu 1520 Anniversary party(树形DP)

本题可用树形DP求解(即在树上DP).father数组记录节点父亲,ch容器记录儿子。dp[i][0]表示以节点i为跟的子树的最大总权值(不选点i),dp[i][1]表示选点i。#include#include#include#include#include#include#include#include#include#include#define ll __int6

2015-04-20 18:16:58 521

原创 POJ 2785 4 Values whose Sum is 0(双向搜索+二分)

题意:给4个数组,从每个数组中选一个数,求出4个数和为0的方案数。分析:暴力时间复杂度为N^3,肯定不行。所以考虑先把ab、cd的和分别求出来。-(a+b)=c+d即满足条件,求和复杂度为N*N。ab数组为-(a+b),cd数组为(c+d)。从cd数组里找等于ab数组的即可。这里可以先给数组排序 ,然后用二分搜索找。复杂度为O(N*N*logN)。#include#include#

2015-04-04 21:33:00 466

原创 Codeforces#297 B Pasha and Strini

题意:给一个字符串,交换m次,每次交换a[i]~n-a[i]+1的字符(例如a[i]=2,n-5,则s[2]和s[4]换)。思路:暴力时间复杂度是10^5*10^5,pass。在交换中,我们可以先把多余的交换去掉。每个字符交换次数若为偶数,一定不变。为奇数,再交换一次即可。用f[i]表示[i,n-i-1]段交换次数,n/2之后全部等价成1~n/2的。dp[i]表示每个字符交换的次数。注意字

2015-03-28 11:05:53 608

原创 HDU 1175 连连看(BFS)

题意解析:其实就是判断起始点能否到达终止点。如果起始点和终止点值不同,直接输出NO。bfs,dfs都行。附加条件:①不能出边界                  ②不能走值为0的点                  ③路径不能转向两次以上节点需要记录该点的坐标,方向,转向次数。下面是BFS代码(注意剪枝:超过两次的就不要再加入队列了)#include#include#inc

2015-03-10 16:58:51 1033

原创 POJ 2823 Sliding Window(单调队列)

题意:给定一个长度为n的序列,依次求出(i,i+k-1) (i∈(0,n-1),i本题有多种解法。首先,暴力的时间复杂度是O((n-k)*klogk),所以pass。解法1:维护一个单调递增的队列(手写),队头即为最小值。同理求出最大值。解法2:维护一个优先队列(priority_queue即可)解法3:线段树这里给出单调队列解法:#include#inc

2015-03-02 17:39:21 775

转载 android View各属性详解

android view详解:一、有8个直接子类:AnalogClock, ImageView, KeyboardView, ProgressBar, SurfaceView, TextView, ViewGroup, ViewStub。二、有54个间接子类:AbsListView, AbsSeekBar, AbsSpinner, AbsoluteLayout, Adapt

2015-03-01 19:44:33 583

原创 蓝桥杯-操作格子(线段树)

#include#include#include#include#include#include#include#include#include#include#define ll __int64#define INF 0x3fffffffusing namespace std;struct Node{ int l,r; int Max,Sum;

2015-02-20 22:37:37 667

原创 Git学习总结

1.      Git常用命令git init  ) 初始化一个目录成仓库添加文件到仓库:①git add +文件名)  把文件修改添加到stage(暂存区)(可多次添加) ②gitcommit (提交到仓库)把暂存区的内容提交到当前分支git status ) 查看当前仓库中是否有修改过且未提交的git diff +文件名 )    显示当前文件内容与上次修改的内容git l

2015-01-01 13:54:59 827

原创 浅谈程序开发心理学

个人从小对于心理学就十分感兴趣。之前读过社会心理学,后来无意中才知道关于程序开发的也有一本心理学的书。能够有幸读到这样一本书,不得不说是一种享受。这本书关于程序开发的新的诠释,使我对程序开发有了更深刻的认识。以前对于程序开发大多还停留在机器的程度上,看了这本书后,才明白程序开发,首先,是作为一种人类行为存在的。程序开发首先要考虑的是人,符合人的心理行为,接下来再去开发。程序开发还是一种写作形式

2014-12-23 23:53:15 739

转载 如何规划自己的程序员人生

看了这篇文章,多多少少受了影响。至少,从现在起,的好好规划自己的人生了。 如何规划自己的程序员人生每个人的人生中20岁到30岁这段时间,是在痛苦中摸索的时间,而且这段时间还有一个很奇特的现象,就是虽然是痛苦的但是大多数人还是有很多的快乐的事情来冲淡这种痛苦。孔子曾经给人的一生每个阶段一个名称二十弱冠、三十而立、四十不惑、五十知天命、六十花甲、七十古来希。20~30岁就处

2014-11-24 18:35:54 562

原创 Java多线程设计模式wait和notify机制总结

Java多线程设计模式wait和notify机制总结:wait和notify方法必须写在synchronized方法内,即在调用wait和notify方法前,需先获得对象锁;调用wait方法则释放锁;wait方法返回后,需获得对象锁才可继续执行下面语句; 多个线程wait时,若另外的线程调用notify方法后,由JVM决定唤醒其中一个线程;多个线程wait时,若另外的线程调用not

2014-11-15 15:03:41 947

原创 HDU1024 Max Sum Plus Plus(DP)

状态:d(i,j)表示前j个数分为i段且包含第j个数时的最优结果,g(i,j)表示前j个数分为i段时的最优结果,g(m,n)即为所求结果。本题数据较大,需采用滚动数组,注意:这题int类型就够用了,开long long可能会TLE。用滚动数组后,g[j]表示分成i段时最优结果,最后求出的g[n]即为结果#include#include#include#include#inclu

2014-11-10 20:37:18 726

原创 程序员要知道的英语词汇

有时候如果应聘到了一个有外资背景的公司或者这个公司的很多人都有海外或外资工作背景时,你也许还会用到一些日常工作交流时候的词汇。比如我们看一下某主管开会时的发言:小王,请你尽快“Push”一下这件事,按照前期咱们定下来的“Plan”来“follow”这个“case”,每一个“Milestone”都要“Share”出来,你负责的这块工作要充分的“Open”,明天最好和客户做一个“Conferenc

2014-11-10 13:43:21 848 1

原创 MySql命令大全

1、连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码。如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即

2014-11-08 22:54:57 685 1

原创 POJ2229 Sumsets

d[i]表示数字i的方案数,分为两种情况:i位奇数时,d[i]=d[i-1],这个很容易想到。i为奇数时,第一个数为1时,d[i]=d[i-1];第一个数为偶数时,d[i]=d[i/2].所以d[i]=d[i-1]+d[i/2]#include#include#include#include#include#include#include#include#include

2014-11-07 13:01:32 663

转载 TCP/IP、Http、Socket的区别

网络由下往上分为  物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。  通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用层,  三者从本质上来说没有可比性,  socket则是对TCP/IP协议的封装和应用(程序员层面上)。  也可以说,TPC/IP协议是传输层协议,主要解决数据如何在网络中传输,

2014-11-06 21:21:50 495

转载 java常用设计模式

设计模式;一个程序员对设计模式的理解:“不懂”为什么要把很简单的东西搞得那么复杂。后来随着软件开发经验的增加才开始明白我所看到的“复杂”恰恰就是设计模式的精髓所在,我所理解的“简单”就是一把钥匙开一把锁的模式,目的仅仅是着眼于解决现在的问题,而设计模式的“复杂”就在于它是要构造一个“万能钥匙”,目的是提出一种对所有锁的开锁方案。在真正理解设计模式之前我一直在编写“简单”的代码.这个“简

2014-11-05 17:31:32 441

原创 POJ3061 Subsequence(二分前缀和法+尺取法)

二分+前缀和法满足条件的子序列长度在(0,n)之间,sum[x+i]-sum[i]为从从第i个元素开始序列长度为x的元素的和。前缀和可在O(n)的时间内统计sum[i]的值。再用二分找出满足条件的最小的子序列长度。#include#include#include#include#include#include#include#include#include#inclu

2014-10-14 21:39:52 972

原创 POJ2456 Aggressive cows(二分+贪心)

假设C(d)为满足所有牛之间的距离都不小于d。先对牛舍的位置排序,然后二分枚举d,寻找满足条件的d。#include#include#include#include#include#include#include#include#include#include#define ll __int64#define INF 0x3fffffffusing namespace

2014-10-13 19:58:50 1111

计算机及网络知识精华

经典啊 新手少走弯路,高手共勉 如何让XP开机自动进行宽带连接 WinXp优化-经典 WINXP优化精髓 电脑高手必备 让你的Windows系统永生 科学的安装驱动程序的顺序 常见电脑故障的排除 计算机故障维修判断指导大全 不放光盘 让Windows系统自动修复受损文件 防止IE浏览器主页被篡改又多一招 开机基本提示语全解析 如何添加音量控制程序 使用计算机必懂的53个英文单词和缩写 计算机运行命令全集 怎样挂接双硬盘-双硬盘的安装和设置要点 解决光驱盘符不见的方法 不用路由器直接用交换机共享上网的方法 BIOS中英文对照表 教大家建立一个别人既无法进入又无法删除的文件夹 怎样使用用S端子线连接电脑与电视

2014-05-17

刘汝佳 45道动态规划题解

非常适合掌握基本DP思想,想进一步提高的童鞋~

2014-03-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除