- 博客(40)
- 资源 (1)
- 收藏
- 关注

原创 一站式登录授权系统(单点登录+授权管理)
项目地址https://github.com/minlingchao1/auth-center项目说明auth-center是一个轻量级的权限管理系统。其核心目标是实现公司内部各个系统的权限的集中管理,利用cas单点登录实现系统的一站式登录特点单点登录权限集中管理,提供权限管理中心集成第三方登录,与现有账号绑定,方便快捷利用shiro实现权限管理,灵活快捷,可以控制到页面的菜单或者按钮,满足
2017-03-19 23:20:55
10945
原创 LeetCode01-two sum
题目链接地址:https://leetcode.com/problems/two-sum/题目详情:Given an array of integers, find two numbers such that they add up to a specific target number.The function twoSum should return indices
2015-03-13 21:31:35
944
原创 微信关键字自动回复功能实现
一、微信API解读微信自动回复可以分为三种,一种是首次关注的欢迎语,一种是关键字自动回复,还有就是无法识别的回复。这三种模式在实现上是完全一样的,只是基于的事件不同而已。要想实现自动回复功能,首先要对微信相关API进行解读。微信的消息类型主要分为请求消息类型以及事件消息类型。首次关注对应的是事件类型中的订阅类型(subscribe),关键字自动回复以及无法识别回复对应的是请求消息类型中
2015-03-10 19:12:44
20087
1
原创 微信第三方平台开发——整体框架示意图
对于play框架的搭建及安装,可以自行搜索使用,下面我们开始讲解使用Play框架进行的微信公众平台的开发。微信公众平台的整体框架共分为以下几个部分:接下来将分章节对每一个相关模块进行详细的讲解。
2015-03-10 17:58:42
7043
原创 Play框架搭建
一、Play框架简介Play框架也是一个MVC架构模式的WEB框架,它将应用分离到不同的层中,表现层和模型层。其中表现层进一步分为视图(View)和控制器(Controller)Play将这三层分在app目录下的不同package中app/controllers:每一个Controller就是一个JAVA类,它的静态公共方法是则是动作,动作是接收Http请求后的JAVA处理
2015-03-10 17:55:47
4901
原创 Http协议详解
HTTP协议即超文本传输协议,这个协议详细规定了浏览器和万维网之间互相通信的规则。HTTP协议就是一个通信的规则,通信规则规定了客户端发送给服务器的内容格式,也规定了服务器发送给客户端的内容格式。其实我们要学的就是这两种格式。客户端发送给服务器的格式叫做请求协议,服务器发送给客户端的叫做响应协议。一、请求协议请求协议的格式如下:请求首行;请求头信息;空行;
2014-09-27 14:48:24
25085
1
原创 Spring+Hibernate配置文件-applicationContext.xml设置
搭建完整个工程之后,我们打开applicationContext。x
2014-08-23 14:11:21
6848
原创 SSh框架搭建(Struts2.1+Hibernate4.0+Spring3.1)
一、使用工具开发工具:My Eclipse 10.7以及相应的java开发工具框架版本:Struts2.1+Hibernate3+Spring3.0数据库:MySql5.5Mysql可视化工具:Navicat 11所需软件的下载地址:二、项目结构一览三、项目环境搭建1、新建项目:
2014-08-23 13:14:29
3451
转载 Java StringBuffer类基本用法详解
String是不变类,用String修改字符串会新建一个String对象,如果频繁的修改,将会产生很多的String对象,开销很大.因此java提供了一个StringBuffer类,这个类在修改字符串方面的效率比String高了很多。 在java中有3个类来负责字符的操作。 1.Character 是进行单个字符操作的, 2.String 对一串字符进行操作。不可变类。
2012-10-20 20:59:25
982
原创 hdu 三角形
题目链接:题目大意:找到n个三角形相交后可最多形成多少个区域,即保证n个三角形的所有边都相交即可。得到公式3*(n-1)*n+2代码:#includeusing namespace std;int main(void){ int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); int m=3*(n-
2012-10-13 10:32:59
738
原创 hdu 1728 逃离迷宫
题目链接:题目大意:迷宫之类的题大多数都能使用BFS或者DFS吧,不过这道题比较多陷阱和技巧,首先,每一种走法经过的弯可能是不同的,虽然都是经过同一个点,但是到达这个点时经过的弯路可能就不同了。应该有点DP的味道吧,BFS+DP可以算出来。这需要开多一个二维数组来保存这个点最小的转弯数,到达终点后判断这个点的转弯数是否小于或等于给予的限定就可以了。这应该是属于UCS查找吧,是BFS的升级版,就
2012-10-12 21:59:08
764
原创 hdu 1254 推箱子(广搜)
题目链接:代码:#include#include#include#includeusing namespace std;#define INF 10000000struct man_box//将人和箱子的坐标定义在同一个结构体中{ int x,y; int bx,by; int step;};int q[4][2]={1,0,-1,0,0,1,0,-1};int
2012-10-11 23:05:09
1236
原创 hdu 1715 大菲波数
题目链接:代码如下:#include#include#includeusing namespace std;struct node{ char s[1000];}f[1001];int a[1000],b[1000],c[1000];void init(){ int alen,blen,len,k,i,j; memset(f[1].s,0,sizeof(f[1].s
2012-10-10 22:54:27
1039
原创 hdu 1047 Integer Inquiry
题目链接:代码如下:#include#include#include#includeusing namespace std;int main(void){ int n,i,j,sum[110],c; char s[110]; scanf("%d",&n); while(n--) { memset(sum,0,sizeof(sum)); c=0; while
2012-10-10 20:45:15
607
转载 hdu 1042 N!
题目链接:代码如下:#include#includeusing namespace std;int main(void){ int i,j,n,a[8001]; while(scanf("%d",&n)!=EOF) { memset(a,0,sizeof(a)); for(i=2,a[0]=1;i<=n;i++) { for(j=0;j<8000;j++)
2012-10-10 18:53:58
967
原创 hdu 1002 A+B Problem II
题目链接:题目大意:将两个加数用字符串表示,按位相加,逢十进一。代码如下:#include#include#include#includeusing namespace std;int n;char s1[1100],s2[1100];int len1,len2;int main(void){ int i,j,k,p; int flag; scanf("%d",
2012-10-10 18:28:49
840
转载 大数运算的算法
在数学运算的过程中 ,经常碰到这样的问题:参与运算的 数字很大或者对运算结果的精度要求很高。无论何种计算机 语言 ,在描述数据类型时都有一定的精度和位数要求 ,比如说 16 位整型数 (int) 所能表示的范围为 - 32768~32767 ,实数 (float)所能表示的精度为小数点后 8 位等 ,每种类型的数据都 有其精度和位数限制。超过 20 位有效数字的数值一般就无 法表示了。所以 ,在上
2012-10-10 17:29:36
12224
原创 hdu 1022 Train Problem I(栈的应用)
题目链接:题目大意:给定两个字符串,判断是否满足后进先出的规则.代码如下:#include#include#includeusing namespace std;int a[10000],b[10000],c[10000],d[10000],m;int main(void){ char s1[10000],s2[10000]; int i,j,k,p; while(s
2012-10-09 22:35:14
670
原创 hdu 2202 最大三角形
题目链接:代码如下:#include#includeusing namespace std;struct L{int x;int y;}qs[50001],stack[50001];double dis(L a,L b)//求两点之间的距离 {return sqrt((double)((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)));
2012-10-06 10:52:22
815
转载 二维凸包模版
#include #include #include #include const int MAXN = 109;const double eps = 1e-6;struct point{ double x,y;}p[MAXN],h[MAXN];inline double distance(const point &p1,const point &p2){ ret
2012-10-06 01:40:40
695
原创 求二维凸包算法详解
概念凸包(Convex Hull)是一个计算几何(图形学)中的概念。用不严谨的话来讲,给定二维平面上的点集,凸包就是将最外层的点连接起来构成的凸多边型,它能包含点集中所有点的。严谨的定义和相关概念参见维基百科:凸包。这个算法是由数学大师葛立恒(Graham)发明的,他曾经是美国数学学会(AMS)主席、AT&T首席科学家以及国际杂技师协会(IJA)主席。(太汗了,这位大牛还会玩杂技~)
2012-10-06 00:34:03
6732
1
转载 灌水问题详解
倒水问题的经典形式是这样的:“假设有一个池塘,里面有无穷多的水,现有两个空水壶,容积分别为6升和5升。问题是如何只用这2个水壶从池塘里取得3升的水。” 当然题外是有一些限制的,比如从池塘里灌水的时候,不是壶里是不死已经有水了,壶里一定要灌满,不能和另外一只壶里的水位位置比照一下;同样得,如果要把水从壶里倒进池塘里,一定要倒光;如果要把水从一个壶里倒进另一个壶里,也要倒光,除非在倒的过程
2012-10-04 22:28:59
2127
原创 hdu 1415 Jugs
题目链接:题目大意:这题是倒水问题,现在有两个容积为a和b的水壶,对每个水壶可以进行4种操作,两个水壶之间相互倒水(一个水壶倒空或者一个水壶倒满为止),从水农头那里灌水(将水壶灌满为止),向外倒水(将水壶倒空为止),问对这两个水壶进行这样的一系列操作是否可以量出容积为c的水(两个杯子中有一个水壶中的水的容积恰好为c) 这里添加一个水壶编号为0,容积为a和b的水壶分别编号为1和2,编
2012-10-04 19:34:40
1167
原创 hdu 1081 To The Max
题目链接:题目大意:该题就是给出一个矩阵,求它的最大子矩阵的和。这可以将矩阵进行逐行扫描,将该矩阵转化成一个序列,则题目就变成求其最大子序列的和。代码如下:#include#include#include#includeusing namespace std;#define INF 99999999int main(void){ int n,i,j,k; int a[
2012-10-04 18:47:20
461
原创 hdu 1242 Rescue
题目链接:题目大意:这一题是典型的搜索题,为了寻找到最佳路径,我们可以反向找,这样得到的结果就是我们需要要求的结果。在搜索方法上使用优先队列来解决。代码如下:#include#include#include#includeusing namespace std;#define INF 10000000const int maxn=210;char s[maxn][maxn
2012-10-04 14:30:01
510
原创 hdu 1801 Annoying painting tool
题目链接:题目大意:该题是利用贪心算法,自左向右,自上而下遍历一次,遇到 与所给的颜色不同,即改变一次,最后判断与所给的是否完全相同代码如下:#include#includeusing namespace std;const int maxn=110;int map[maxn][maxn],color[maxn][maxn];char s[maxn][maxn];int n
2012-10-04 13:56:33
927
原创 hdu 1115 Lifting the Stone(凸多边形重心的应用)
题目链接:题目大意:输入一个n边形的n个点的坐标,要求你求出这个多边形的重心代码如下:#include#includeusing namespace std;const int maxn=1000005;typedef struct point{ double x; double y; point(double a=0,double b=0):x(a),y(b){}
2012-10-03 22:48:34
1028
原创 计算凸多边形的重心及面积的方法
首先要从最简单的三角形进行分析,所谓三角形的重心就是三角形的外心,即中线的交点。如下图所示,三角形的3个顶点的坐标按照逆时针依次为(x1,y1),(x2,y2),(x3,y3),重心坐标为(xg,yg)。因为(xg,yg)是三条中线的交点,所以(xg,yg)位于从(x1,y1)出发的中线的2/3处,即xg=(x1+x2+x3)/3,yg=(y1+y2+y3)/3;已知三角形的三个顶点的
2012-10-03 22:10:57
7808
原创 c++map容器介绍
. Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作! 1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。 2、map的功能自动建立Key - v
2012-10-03 10:32:19
12874
1
原创 c++queue容器介绍
一.queue模版类的定义在头文件中。queue与stack模版非常类似,queue模版也需要定义两个模版参数,一个是元素类型,一个是容器类型,元素类型是必要的,容器类型是可选的,默认为dqueue类型。定义queue对象的示例代码如下:queueq1;queueq2;queue的基本操作有:1.入队:如q.push(x):将x元素接到队列的末端;2.出队:如q.pop
2012-10-02 23:48:07
85146
8
原创 c++stack容器介绍
c++stack(堆栈)是一个容器的改编,它实现了一个先进后出的数据结构(FILO)使用该容器时需要包含#include头文件;定义stack对象的示例代码如下:stacks1;stacks2;stack的基本操作有:1.入栈:如s.push(x);2.出栈:如 s.pop().注意:出栈操作只是删除栈顶的元素,并不返回该元素。3.访问栈顶:如s.top();4
2012-10-02 23:21:05
45499
原创 “后进先出”的栈
栈的定义:栈是限定仅在表尾进行插入或删除操作的线性表,因此表尾端成为栈顶,相应的,表头端成为栈底,不含有任何元素的栈称为空栈。栈的修改遵循后进先出的原则,因此栈又称为后进先出的线性表,简称LIFO结构。栈一般采用数组作为其存储结构,这样做可以避免使用指针,简化程序,当然数组需要预先声明静态数据区的大小,但这不是问题,因为即便是频繁进出入栈操作,任何时刻栈元素的实际个数也不会很多,为栈预
2012-10-02 23:01:53
3547
原创 hdu线段树专题训练
单点更新:这是线段树中最基本的类型,只更新叶子节点,然后把信息用PushUP(int r)这个函数更新上来。hdu 1166 敌兵布阵代码如下#include#include#includeusing namespace std;#define lson l,m,rt<<1#define rson m+1,r,rt<<1|1const int maxn=55555;
2012-09-30 10:52:06
831
原创 线段树专题
线段树的定义:首先,线段树是一棵“树”,而且是一棵完全二叉树。同时,“线段”两字反映出线段树的 另一个特点:每个节点表示的是一个“线段”,或者说是一个区间。事实上,一棵线段树的根 节点表示的是“整体”的区间,而它的左右子树也是一棵线段树,分别表示的是这个区间的左 半边和右半边。 在此我们可以举一个例子来说明线段树通常的构造方法,以RMQ问题为例: 有N个数排成一排,每次询问某一段中的最小数。
2012-09-30 10:27:29
878
原创 hdu 敌兵布阵
敌兵布阵Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 20298 Accepted Submission(s): 8896Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C
2012-09-30 09:48:25
707
原创 hdu 1040 As Easy As A+B
Problem DescriptionThese days, I am thinking about a question, how can I get a problem as easy as A+B? It is fairly difficulty to do such a thing. Of course, I got it after many waking nights.Gi
2012-09-23 23:05:08
910
原创 计数排序
基本的思路就是假设输入序列中任意的元素x都满足x∈[0, k],且x和k都为整数。然后对每一元素x,都确定出序列中比它小的元素的个数,比如为n,则x排序后的位置就应当从n + 1处开始。实现的时候还需要考虑一些细节,比如序列中有几个元素大小相等,因此还需要对大小相等的元素个数进行计数,这样才能正确分配排序后各个元素的位置。 过程中用到了一个辅助序列C,C的大小为k + 1,从C[0]
2012-09-23 22:37:17
604
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人