自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(121)
  • 收藏
  • 关注

原创 Hbase Sql 层 Phoenix 的三个特性Row timestamp, Sequences 和 Salted Tables

Row timestampPhoenix 从4.6版本开始,提供了一个映射Hbase 的native timestamp 到phoenix的办法,从而可以利用Hbase提供的对于时序数据处理和查询的一系列优化手段。如果有列名被声明为row_timestamp, 必须满足以下的约束条件只有类型为TIME, DATE, TIMESTAMP,BIGINT, UNSIGNED_LONG, 且是主键的列才能

2016-03-08 17:04:28 1947

原创 System Design Guide

System Design principle:Divide system into modulesModule designprinciple: phase by phasephase 1: design module with a perfect environment(mean no error, every component works perfectly)phase 2: con

2016-01-20 14:41:02 554

原创 Zookeeper 实现分布式功能组件

此文是阅读link zookeeper recipes的阅读笔记说明exists, getData,getChildren,delete,create 均为zk客户端的对某个znode的操作。含义同名。Zookeeper可以用来实现以下分布式功能分布式程序栅栏当集群某些节点需要等待其他进程时,可以使用栅栏功能阻塞自身,并且在栅栏被删除的时候接受到通知。 步骤如下 :

2016-01-17 17:08:20 1446

原创 Zookeeper 编程指南官网文档学习笔记

Zookeeper 编程指南官网文档学习笔记此文是link zk program guide的阅读笔记。 由于对原文中出现的watches还没有很好的理解,在翻译时结合了上下文和自己的理解有时翻译成监听,有时翻译成事件。待我完全理解后再来修改一番。四个关于zk的概念数据模型zk会话zk监听一致性保证zk数据模型zk拥有一个层次结构的命名空间(树形结构),更像是一个可以附带信息的分布式文件

2016-01-15 14:43:36 873

原创 maven工程使用spring-boot-devtools进行热部署,更改代码避免重启web容器

spring-boot-devtools 是一个为开发者服务的一个模块,其中最重要的功能就是自动应用代码更改到最新的App上面去。原理是在发现代码有更改之后,重新启动应用,但是比速度比手动停止后再启动还要更快,更快指的不是节省出来的手工操作的时间。其深层原理是使用了两个ClassLoader,一个Classloader加载那些不会改变的类(第三方Jar包),另一个ClassLoader加载

2015-07-11 17:12:25 40563 8

原创 ZOJ-3777-Problem Arrangement

题目大意:安排一场ACM比赛的题目shu

2014-05-18 11:09:45 575

原创 11019 - Matrix Matcher--AC自动机

在一个字符矩阵里面找出模块矩阵出现了多少次?处理模块行的时候注意,mo

2014-04-09 22:10:26 531

原创 UVA--1099 - Sharing Chocolate

题目大意:给定一个长为w,宽为h,的巧克力,再给定一个面积的集合,问巧克力能不能完全分割成给定的面积的集合?(面积集合的大小小于等于15)解题思路:对给定的面积集合用状态枚举子集,在利用记忆化搜索判断能够分解成给定的集合#include #include #include #include #include using namespace std;const int MAXN

2014-03-27 08:01:24 603

转载 Python 操作mysql

来源:疯狂的蚂蚁的博客www.crazyant.net总结和整理 本文介绍了Python操作MYSQL、执行SQL语句、获取结果集、遍历结果集、取得某个字段、获取表字段名、将图片插入数据库、执行事务等各种代码实例和详细介绍,代码居多,是一桌丰盛唯美的代码大餐。 实例1、取得MYSQL的版本 在windows环境下安装mysql模块用于python开发,请见我的另一篇文章:

2013-11-24 15:38:31 666

原创 USACO--starry--模拟

模拟题目的恶心真心不是吹的#include #include #include #include #include using namespace std;const int MAXN = 510;ofstream fout("starry.out");struct Tri{ int x,y; int start_x,start_y; int end_x,en

2013-11-03 19:01:33 542

原创 HDU-2222-Aho-Corasick--自动机

模板题目理解了AC自动机之后感觉这真是一个奇妙的东西▼o・ェ・o▼参考  http://blog.csdn.net/zxy_snow/article/details/6709255#include#include#include#includeusing namespace std;const int SIGMA_SIZE = 26;struct node{ nod

2013-10-20 11:15:38 510

原创 HDU --3652--b_number--数位DP

求出区间内有13作为连续子串且是13的倍数的数字的个数思路:dp数组增加一维用来表示状态数字对13取模的余数就好了,然后状态转移的时候按照找出含有13的数字的个数就可以了,二维转移。代码没有用传统的数位DP框架下的dfs函数写,用状态推的,这样的写法与用传统的dfs写法不同点在于dfs方法求出的数字包含了传入的数字本身,所以答案一般是solve(b)-solve(a-1),,,这题的递推写

2013-09-25 18:49:56 520

原创 hdu--3709--Banlanced-Number--数位DP

数位DP也就这样子了,看了别人的思路,写下来的代码居然就一模一样了,可见数位DP的框架还真就定死了的。用dp[pos][o][pre] 表示状态,然后枚举中间点就知道怎么做了。反正框架就是这个样子了,一位一位的往后推,记录前面数字的状态就可以了,变化无非就是前面数字的状态表示,想到了状态如何表示,题目就迎刃而解了。数位DP的考点应该就是状态的建模了。#include#incl

2013-09-25 18:45:09 522

原创 XHXJ's LIS---数位DP

练习了几道数位DP 的题目,数位DP的大框架已经基本上熟悉了。由于求LIS的长度不超过十位,所以可以用NlogN的求LIS 的方法去更新二进制位的保存的LIS;具体做法是这样的(看清楚接下来的表述前提是你已经熟悉了数位DP 的dfs做法框架),用一个整数状态表示前面已经得到了的LIS具体出现的数字,比如求出的LIS长度是2,具体Sequence 是12,然后这个整数状态就是3,然后寻找当前

2013-09-24 12:05:49 660

原创 Round Number --数位DP

如果一个数的二进制表示里面,0的个数大于等于1 的个数(不计算前导0),那么这个叫做round number。求一个给定区间内的round number。思路:假设一个二进制数的第 i 位(从右往左数,从1 开始)是1 的话,那么当第i位为0的时候,从这个数的第 i 位往右的那些二进制位可以是任何数(1或者0 ),换句话说,就是第 i 位右边的 二进制位不论是1还是0都小于原来的数字的

2013-09-20 15:58:02 1085

原创 数位DP --Windy数

满足一下条件的数字称为windy数不考虑前导0,所有相邻的两个数字的差至少为2。求出任意区间内的所有windy数思路:dp[i][j]表示所有长度为 i 的数字以 j 开头的windy数的个数。0仔细考虑前导0 的影响,已注释在代码中#include#include#include#define bugusing namespace std;const int M

2013-09-20 10:35:29 625

原创 数位DP--不要62

题目大意:求出给定区间内,不包含62 和 4 的数字的个数思路在代码里面,细节蛮多的,注意一下#include#include#include#includeusing namespace std;const int MAXN = 10;int dp[MAXN][2];//dp[i][0] 表示长度为i的任意数字中不含4 也不含62 的数字的个数//dp[i][1] 表

2013-09-19 08:48:14 586

原创 HDU --3555--Bomb--数位DP

为什么N 要加1 ,为什么计算的小于N 的所有数?!!为什么!!!??为什么??!!!!#include#include#includeusing namespace std;typedef long long LL;const int MAXN = 30;LL dp[MAXN][3];//dp[i][0] indicate i bits without 49//dp[i]

2013-09-18 16:42:04 487

原创 HDU--2829--Lawrence--斜率优化做法

嗯,我是看别人的题解做,复述一下思路有助于强化记忆(* ̄m ̄)首先搞一个前缀和数组 sum[i] 你应该知道这是干嘛的,然后就是一个关键的 w 数组,w[i] 表示前i个数两两相乘的和,这是根据题意来的。然后咧,状态转移方程就是这样滴: dp[k][i] = min{dp[k-1][j]+val(j+1,i)|0<=j<i}val(j+1,i)表示[j+1,i]区间内的数字两两相乘

2013-08-23 22:13:07 574

原创 HDU -4571--Travel in Time

各种细节坑死人#include#include#include#include#include#include#includeusing namespace std;const int MAXN = 110;const int INF = 1<<28;struct node{ int c,sa; int node_id;}p[MAXN];int di

2013-08-22 11:56:47 554

原创 POJ--线段树成段更新--树状数组做法

在discuss里面看到有用树状数组做的,于是找了个做法http://kenby.iteye.com/blog/962159貌似和我线段树的时间差不多,都是1600ms 左右,但是人家就可以进1秒,大概是我代码写挫了吧#include#include#include#define lowbit(x) ((x)&(-x))using namespace std;typedef lo

2013-08-21 23:25:44 531

原创 Python 随机生成DAG(有向无环图)

给校队选拔赛出了道DAG上的背包问题,需要生成DAG数据。最开始使用的方法是先随机生成再判环,如果有环就重新生成。这种发放得到DAG的概率随着点数和边数的增加而急速降低,为了一个DAG要生成很多次,等很长时间。然后觉得这样的方法很stupid。。。听了好甜给的先生成拓扑序的构造方法,这样可以保证生成的图里面没有环。首先随机生成一个 1 到N 的permutation。这个permuta

2013-08-21 21:55:02 6670 8

原创 POJ -- 3468 --线段树成段更新

很久以前的题目再做一遍复习一下。要点:1)约定在任何时候 add_num 到达节点的时候就立即更新节点的 sum 值。2)每次更新节点回溯的时候记得维护节点的 sum 值。3)执行询问操作的时候,遇到 lazy 标记为1 的时候往下 Push_down,,同时记得第一点4)遇到符合要求的询问区间时,由于第一条的规定,直接返回 sum 值,而不必加上 区间长度*add_num

2013-08-21 21:24:19 617

原创 POJ--2441--Arrange the Bulls--状压DP-滚动数组优化

dp[i][j] 表示前 i 头牛放成 j 状态的数量然后就可以状压DP 了,提前看了一discuss,说要用滚动数组,想想也是,加上数组优化后空间用了9M,不用滚动数组的话使用空间就是 9*10 = 90M ,题目只给了64M的空间。刚提交了一下不优化空间的,还真MLE了。。。。。。。。。我是不是很无聊。。。亲自验证一下而已-_-##include#include#includeu

2013-08-12 10:43:35 554

原创 SGU-131--Hardwood floor--状态压缩DP

貌似状压题目放方块类型的已经木问题了。。。#include#include#include#include#include#include#include#includeusing namespace std;typedef long long LL;const int MAXN =20;int n,m;LL dp[MAXN][1<<10];int sc[MAXN]

2013-08-11 21:32:58 731

原创 POJ--3017--Cut the Sequence--DP优化

题目大意:求一个数字序列的划分,每一个划分块的和不大于M,求出所有划分块最大值的最小值。DP方程:dp[i] = min{dp[j]+max(a[j+1],a[i])}用一个单调队列存储所有可行的决策,这个单调队列里面存储条件是队列范围的所有元素和不大于M,所以队列元素的个数就是每个点的决策个数。更详细的题解可以看一下别人的blog#include#include#includ

2013-08-11 14:49:10 782

原创 POJ--1185--炮兵阵地--状态压缩DP

话说过了很久,又把这个题目写了一遍,这次代码精简多了,话说粗心写错了两个地方,调试了很久。。。感觉很冤枉,论写代码时思维的严密性与细心#include#include#includeusing namespace std;const int MAX_N = 110;const int MAX_M = 15;const int MAX_ST = 100;int sc

2013-08-10 11:13:12 488

原创 HDU --4283--You Are the One--区间DP

想好出栈入栈的情况,别多想,别少想,然后就可以DP了假设一段区间[s,e],中间点是m,那么m把区间分成了两部分,[s,m]和[m+1,e],设dp[i][j]为区间[i,j]最小吊丝和,sum[i][j]为区间[i,j]的每个男生的吊丝值的和.那么,[s,m],和[m+1,e]两段区间就可以有两个决策:一:区间一的所有人先上舞台。二:区间二的所有人先上舞台。如果区间二的人先上

2013-08-09 10:28:30 531

原创 UVA--10859--Placing Lampposts--DP

求两个变量v1和v2在先满足v1最小的情况下,再求v2的最优值,可设  x = M*v1+v2,,其中M是一个很大的值,这样求出的x的最优值就是题目所求,因为在这个式子里面v1起到决定性的作用参考了一下书上的代码,树上的DP,可以一边dfs一个DP#include#include#include#include#include#include#include#include

2013-08-08 11:54:26 545

原创 HDU--4521--带间隔的LIS

求最长的LIS,但是LIS的任意两个两个元素要在原序列里面间隔至少K个位置。计算了每个元素的d值(也就是长度为I 的最小元素值),延缓K个时间再加入到队列里面去。#include#include#include#include#include#include#include#includeusing namespace std;const int INF = 9999

2013-08-07 18:10:46 641

原创 HDU--3415--Max Sum of Max-K-sub-sequence--单调队列

题目大意:有一个数字序列,可循环,求出长度不超过K的最大连续数字和单调队列必杀之。。。另外看到discuess里面有用线段树做的,我想用线段树的话一定很蛋疼贴上代码回味一下美味的单调队列#include#include#include#include#include#include#include#includeusing namespace std;const in

2013-08-07 16:16:53 471

原创 两个单调队列代码

好久没写题解了,可耻啊可耻POJ 2823 点击打开链接FZOJ 1894 点击打开链接POJ 2823#include#include#include#include#include#include#include#includeusing namespace std;const int MAXN = 1000020;struct node{

2013-08-07 12:32:06 509

原创 2013多校第三场 --Pieces--状态压缩DP

题目大意:删除一个字符串里面的回文子串,问最少需要多少次可以删完整个字符串题解:其实是个蛮简单的题目,比赛完了艾神一点就会了,比赛的时候就是没想到,比赛的时候没想到状态怎么压缩。。还是经验不够。#include#include#include#include#define maxn (1<<16)using namespace std;int dp[maxn];int sta

2013-07-30 19:00:13 607

原创 uva--10635

新学习求LIS复杂度为NlogN 的算法扫描序列的时候用一个数组g记录到目前为止扫描的所有长度为i的IS的最小值。假设待求序列a,则g[i]表示所有IS为i的子序列最后一个值最小的那一个。g[i]=min{a[j]|a[j]是所有长度为i的IS最小的那一个};原题解白书里面有讲,额,,,我复述一下。本题需求两个序列的LCS,两个序列的范围都是1~n^2,且各个序列的数字各不相同,这

2013-07-10 16:12:15 561

原创 uva--1344--Tian Ji -- The Horse Racing

题目大意:/*************题目大意:规则类似田忌赛马*给出齐王每匹马的速度和田忌每匹马的速度*田忌每赢一次就获得200两银子*问田忌最多能赢得多少银子************/解题思路:把双方的马都排序,升序降序无所谓,然后YY了一下,田忌能赢最多钱的方案应该是排好序之后的序列往左或者往右(视排列顺序而定,假设是升序)移动确定的位之后的比赛序列,所以试了一下

2013-07-10 10:08:49 619

原创 uva--221--Urban Elevations

哈哈哈,劳资终于过了这题了没算法,就100个房子,暴力判断能不能被挡住。注意一个房子可能被几个房子一起挡住的就情况就可以了,就这这种情况搞了我好几个小时。。#include#include#include#include#define maxn 120using namespace std;struct Build{ int x,y; int wd,dep

2013-06-29 16:18:31 665

原创 POJ--2299--Ultra-QuickSort

题目大意:给出一个数字序列,问冒泡排序需要交换数字的次数。好题啊。。。看着1W多的通过数,以为是水题呢。解题思路,求出序列中的逆序对数就是需要交换的次数,求逆序对数可以用树状数组求,但是题目给的数据范围略大,需要离散化原来的数据。所以第一步:先对原来的数据排序,再离散数据,,用1-N 的数表示出各个数字的大小关系就可以了。第二步:通过树状数组求出逆序对数即可。如果你不知道怎么通过树

2013-06-28 21:57:35 502

原创 POJ--1868--Antiarithmetic?

题目大意:给出一个数字序列,假设这个序列长度为N,序列所有的数字不相同而且小于N。问这个序列有没有子序列构成等差数列解题思路。。。直接看代码吧,简单到爆。O(n^2)的代码居然过了。。。。。。。#include#include#include#define maxn 10030using namespace std;int n,a[maxn],pos[maxn];bool

2013-06-28 21:02:16 641

原创 UVA--1312--Cricket Field

题目大意,给出一个矩形区域,里面有一些点,求出空出的最大的正方形面积。解题思路,每加进一个点就对现有的矩形进行一次切割,上下,左右个两个,最后再统计一下。用的stl里面的队列,UVA上0.5s过了,POJ上过不了,又不想改成数组。。。#include#include#include#includeusing namespace std;struct node{ in

2013-06-28 19:51:17 577

原创 POJ--3141--Distant Galaxy

题目大意:给出100个点的坐标,找一个矩形,让这个矩形的边界包含最多的点解题报告: 考虑矩形的四条边界。枚举矩形的上下边界(O(n^2)),然后从左往右扫描每一条竖线,用三个数组记录扫描到的每一条竖线相关信息(参考下图),left数组表示竖线左边的上下边界(不包括竖线)上的点的总数,on数组保存竖线上点的总数(不包括上下边界上的点),on2数组保存竖线上的点的数量(包括上下边界上的点)。

2013-06-27 13:24:12 738

空空如也

空空如也

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

TA关注的人

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