自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Michael Hsu

很多事情都需要做,但当应用需要更高要求的算法时,就必须能够阅读论文,领会论文思路并通过代码实现,如此反复下去。

  • 博客(140)
  • 资源 (2)
  • 问答 (6)
  • 收藏
  • 关注

转载 Java工程开发命名规范

java的包名都是由小写单词组成的,类名的首字母都是大写,也就是我们常用的驼峰写法,包路径一般都是对系统模板的定义与归类。这样看了包名很容易就明白哪一个模块是干什么的,很容易通过对应的包路径找到对应的代码!在java开发的过程中,每名Java开发人员都可以编写属于自己的java package,为了在编写中保证每一个java package命名的唯一性,要求开发人员在自己定义的包名前加上唯一的前缀。

2016-06-03 10:55:01 3042

原创 蓝桥杯——生物芯片

X博士正在研究一种生物芯片,其逻辑密集度、容量都远远高于普通的半导体芯片。博士在芯片中设计了 n 个微型光源,每个光源操作一次就会改变其状态,即:点亮转为关闭,或关闭转为点亮。这些光源的编号从 1 到 n,开始的时候所有光源都是关闭的。 博士计划在芯片上执行如下动作: 所有编号为2的倍数的光源操作一次,也就是把 2 4 6 8 … 等序号光源打开 所有编号为3的倍数的光源

2016-05-22 11:46:32 1365 2

原创 用卡特兰数求解对于给定序列有多少种出栈情况

标题:出栈次序X星球特别讲究秩序,所有道路都是单行线。一个甲壳虫车队,共16辆车,按照编号先后发车,夹在其它车流中,缓缓前行。路边有个死胡同,只能容一辆车通过,是临时的检查站,如图![示例图片](http://img.blog.csdn.net/20160522100438465)X星球太死板,要求每辆路过的车必须进入检查站,也可能不检查就放行,也可能仔细检查。如果车辆进入检查站和离开的次序可以任意

2016-05-22 10:03:18 1739

原创 剪格子

问题描述 如下图所示,3 x 3 的格子中填写了一些整数。+–*–+–+ |10* 1|52| +–**–+ |20|30* 1| *–+ | 1| 2| 3| +–+–+–+ 我们沿着图中的星号线剪开,得到两个部分,每个部分的数字和都是60。本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。如果存在多种解答,请

2016-05-15 16:08:24 415

原创 接水问题——使用优先级队列进行维护

问题描述   学校里有一个水房,水房里一共装有m 个龙头可供同学们打开水,每个龙头每秒钟的 供水量相等,均为1。 现在有n 名同学准备接水,他们的初始接水顺序已经确定。将这些同学按接水顺序从1 到n 编号,i 号同学的接水量为wi。接水开始时,1 到m 号同学各占一个水龙头,并同时打 开水龙头接水。当其中某名同学j 完成其接水量要求wj 后,下一名排队等候接水的同学k 马上接替j 同学的位置开

2016-05-12 19:44:02 569

原创 JavaEE中response.setContentType方法的使用

response.setContentType(MIME)的作用是使客户端浏览器,区分不同种类的数据,并根据不同的MIME调用浏览器内不同的程序嵌入模块来处理相应的数据在servlet中,习惯性地会首先设置请求以及相应的内容类型以及编码方式,所以最好在一开始就先写上response.setContentType方法,最起码要写在response.getWriter方法前面。因为response.s

2016-04-26 21:13:04 4418

原创 Java对象、对象引用关系及参数传递讨论

学习Java的过程中,很容易将对象及对象引用混为一谈,而且我们平时在交流时为了方便起见也只是对象怎样、对象怎样,但很多时候我们操作的,根本上来说是对象,但直接操作的却是对象的引用。先贴一篇博文,非常形象的解释了对象及对象引用间的关系.Java语言中通过对象的引用来操纵对象,要注意的一点是对象和对象的引用是存储在不同的地方的,因为对象往往所占的空间要求比较大,所以对象存储在堆中,而为了便于操作,对

2016-04-20 12:07:45 6277

原创 最大字段和

N个整数组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续子段和的最大值。当所给的整数均为负数时和为0。例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13。和为20。Input第1行:整数序列的长度N(2 <= N <= 50000)第2 - N + 1行:N个整数(-10^9 <= A[i] <= 10^9)

2016-04-16 22:03:00 1130

原创 动态规划

首先,动态规划不是一个特定的算法,它代表的是一种思想,一种手段动态规划方法往往用于求解“最优化问题”,能用动态规划求解的问题的前提是问题具有“最优子结构性质”。最优子结构性质:问题的最优解由相关子问题的最优解组合而成,而这些子问题可以独立求解。动态规划的核心是“状态的表达”和“状态转移方程的建立”,状态的意义的确立直接关系到状态转移方程能否建立正确。动态规划问题常用的有两种方法: a.

2016-04-16 18:43:15 581

原创 Java文件操作

一、File对象(找到指定的文件所在的路径)File对象不涉及文件读写操作,更贴切的来说File对象的含义应该是FilePath,它指定了文件的路径。File对象通过mkdir()方法创建一个文件目录,通过createNewFile()来创建文件。File 的构造方法需要指明文件所在的路径,有绝对路径和相对路径。 相对路径具有很多的优良特性。二、文件字节输入、输出流FileInput

2016-04-13 11:23:54 406

原创 快速幂运算

/* * 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 给出3个正整数A B C,求A^B Mod C。 例如,3 5 8,3^5 Mod 8 = 3。 Input 3个正整数A B C,中间用空格分隔。(1 <= A,B,C <= 10^9) Output 输出计算结果 Input示例 3 5 8 Output示例 3 *

2016-04-09 09:35:06 474

原创 字典序排列(借助于TreeSet实现)

给出一个字符串S(可能又重复的字符),按照字典序从小到大,输出S包括的字符组成的所有排列。例如:S = “1312”, 输出为: 1123 1132 1213 1231 1312 1321 2113 2131 2311 3112 3121 3211 Input 输入一个字符串S(S的长度 <= 9,且只包括0

2016-04-03 21:21:16 1839

原创 2016年蓝桥杯javaB省赛——压缩变换

压缩变换 小明最近在研究压缩算法。 他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。 然而,要使数值很小是一个挑战。 最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚出现过不久的数字。对于这种特殊的序列,小明准 备对序列做一个变换来减小数字的值。 变换的过程如下: 从左到右枚举序列,每枚举到一个数字,如

2016-03-31 19:55:14 2472 2

原创 Java实现lowerBound及upperBound

Java中已经实现了BinarySearch,但没有lowerBound和upperBound,整理一下其实现原理。 折半查找中,寻求中间元素的下标时,使用的是“ int m = l + (r - l) / 2;”这种方法,这样做和“int m = (l + r)/2”的结果是一样的,但是避免了溢出,这可以通过下面的代码来验证。public class Main { public stat

2016-03-30 17:01:41 3820

原创 多重循环优化

四平方和 (程序设计) 四平方和定理,又称为拉格朗日定理: 每个正整数都可以表示为至多4个正整数的平方和。 如果把0包括进去,就正好可以表示为4个数的平方和。 比如: 5 = 0^2 + 0^2 + 1^2 + 2^2 7 = 1^2 + 1^2 + 1^2 + 2^2 (^符号表示乘方的意思) 对于一个给定的正整数,可能存在多种平方和的表示法。

2016-03-30 11:41:08 1545

原创 2016年蓝桥杯java B组省赛总结及注意1

4.分小组 (代码填空) 9名运动员参加比赛,需要分3组进行预赛。 有哪些分组的方案呢? 我们标记运动员为 A,B,C,… I 下面的程序列出了所有的分组方法。 该程序的正常输出为: ABC DEF GHI ABC DEG FHI ABC DEH FGI ABC DEI FGH ABC DFG EHI ABC DFH EGI

2016-03-28 21:35:23 5554

原创 Java——接口

使用关键字interface来定义接口:interface 接口的名字。接口体中包含常量的声明(没有变量)和抽象方法两部分。接口体中只有抽象方法,没有普通的方法。接口体中所有的常量的访问权限一定是public,而且是static常量(允许省略public、static和final修饰符),所有的抽象方法的访问权限也都是public(允许省略public abstract修饰符)。抽象类与接口的区

2016-03-22 20:06:33 653

原创 Java学习

一个Java应用程序必须有一个类含有public static void main(String args[])方法,称这个类是应用程序的主类。当Java应用程序中有多个类时,Java解释器执行的类名必须是主类的名字。如果源文件中有多个类,那么只能有一个类是public类;如果有一个类是public类,那么源文件的名字必须和这个类的名字完全相同。 public static void main(

2016-03-22 16:47:25 288

原创 Java编程学习——访问权限

用关键字private修饰的成员变量和方法称为私有变量和私有方法。类内定义的private变量或方法只能在本类内(定义时)使用,而不能在另外一个类中通过该类的对象访问private变量或方法。用public修饰的成员变量和方法被称为共有变量和共有方法。如果A类的某个成员或方法是public型,那么在B类中定义的A的对象a可以直接访问或操作该变量、方法。protected修饰的成员变量和方法称为受

2016-03-21 21:04:41 481

原创 Java学习——继承

1.继承是一种由已有的类创建新类的机制。利用继承,可以先定义一个共有属性(在设计模式中,也就是把不变的、固定的那部分属性、方法抽取出来作为子类的共有属性)的一般类(父类、超类或基类),根据该一般类再定义具有特殊属性的子类,子类继承一般类的属性和行为(注意private和protected修饰),并可以根据需要增加子类自己新的属性和行为。 继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属

2016-03-21 11:37:57 664

原创 Java编程细节注意

把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。 得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。public class Main { public static voi

2016-03-19 21:12:11 518

原创 Java编程——Calendar类学习及相关日期运算

Calendar类是抽象类,且Calendar类的构造方法是protected的,所以无法使用Calendar类的构造方法来创建对象,API中提供了getInstance方法用来创建对象。 使用Calendar类的static方法getInstance()可以初始化一个日历对象,如: Calendar cal = Calendar.getInstance。Calendar对象可以调用set方法

2016-03-19 19:43:57 676

原创 带分数

问题描述100 可以表示为带分数的形式:100 = 3 + 69258 / 714。还可以表示为:100 = 82 + 3546 / 197。注意特征:带分数中,数字1~9分别出现且只出现一次(不包含0)。类似这样的带分数,100 有 11 种表示法。 输入格式从标准输入读入一个正整数N (N<1000*1000) 输出格式程序输出该数字用数码1~9不重复不遗漏地组成带分数表示的全部种数。注意:

2016-03-18 20:26:17 1409

原创 打印十字图

问题描述小明为某机构设计了一个十字型的徽标(并非红十字会啊),如下所示:..$$$$$$$$$$$$$....$...........$..$$$.$$$$$$$$$.$$$$...$.......$...$$.$$$.$$$$$.$$$.$$.$...$...$...$.$$.$.$$$.$.$$$.$.$$.$.$...$...$.$.$$.$.$.$$$$$.$.$.$$.

2016-03-18 16:50:50 348

原创 算法学习——树状数组

给定一个数列:a1 , a2 , a3 , ····,an。树状数组可以快速的完成下述操作:给定i,计算a1+a2+ ···· + ai的和,即计算数列前i项的和,同样的这也可以转变为求任意给定的区间的和,如求[s,t]内的数列和,getSum(t) - getSum(s)。给定i和x,执行ai += x,也就是update(i),注意由于树状数组是区间性的,所以i之后的元素也会更新。树状数组

2016-03-18 16:46:16 267

原创 优先级队列广搜——坦克大战

坦克大战 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Many of us had played the game “Battle city” in our childhood, and some people (like me) even often play it on computer now. What we are discussing i

2016-03-17 16:43:28 411

原创 分治——合并排序

分治思路:大问题分解为子问题子问题相互独立,可以直接解决将子问题合解,得到原问题的解使用分治法进行数组排序。 * 将一个数列等分为两半,递归的进行排序,拆成两半,每一块都已经排好序了,但是并不代表这两块直接拼起来 * 不一定是整体有序的,还需要进一步操作————将两个有序集合通过while循环附设两个指针合并为一个有序的, * 同样这就说明了需要再额外开一个数组进行辅助,也就说合

2016-03-16 15:42:07 380

原创 阴沟里翻船——学霸的迷宫

问题描述   学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维 的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要陪,磨刀不误砍柴功,他为了节约时间,从线人那里搞到了迷宫的地图,准备提前计 算最短的路线。可是他现在正向妹子解释这件事情,于是就委托你帮他找一条最短的路线。 输入格式   第一行两个整数n, m,

2016-03-15 16:50:31 945

原创 连号区间数

标题:连号区间数小明这些天一直在思考这样一个奇怪而有趣的问题:在1~N的某个全排列中有多少个连号区间呢?这里所说的连号区间的定义是:如果区间[L, R] 里的所有元素(即此排列的第L个到第R个元素)递增排序后能得到一个长度为R-L+1的“连续”数列,则称这个区间连号区间。当N很小的时候,小明可以很快地算出答案,但是当N变大的时候,问题就不是那么简单了,现在小明需要你的帮助。输入格式: 第一行是一

2016-03-14 20:46:42 601

原创 并查集

The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 30182 Accepted: 14678 DescriptionSevere acute respiratory syndrome (SARS), an atypical pneumonia of unknown aetiol

2016-03-14 19:33:47 324

原创 Java编程语法——compartator在sort中的使用

Java中有两种方式来提供比较功能!实现java.lang.Comparable接口,使类具有“天生”的比较能力。此接口很简单,只有public int compareTo(Object obj)一个方法(注意在具体使用时Object可以替换为具体的类)。此方法接收一个Object作为参数,如果当前对象(this)小于参数obj则返回负值,如果相等则返回0,如果当前对象大于参数则返回正值。在使用时

2016-03-13 21:10:13 684

原创 prim求最小生成树——Highways

Highways Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 27038 Accepted: 12363 DescriptionThe island nation of Flatopia is perfectly flat. Unfortunately, Flatopia has no publi

2016-03-13 17:21:01 375

原创 大臣的旅费

问题描述 很久以前,T王国空前繁荣。为了更好地管理国家,王国修建了大量的快速路,用于连接首都和王国内的各大城市。为节省经费,T国的大臣们经过思考,制定了一套优秀的修建方案,使得任何一个大城市都能从首都直接或者通过其他大城市间接到达。同时,如果不重复经过大城市,从首都到达每个大城市的方案都是唯一的。J是T国重要大臣,他巡查于各大城市之间,体察民情。所以,从一个城市马不停蹄地到另一个城市成了J最常做的

2016-03-11 09:31:29 1389

原创 九宫重排

问题描述(oj)   如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。 经过若干次移动,可以形成第二个图所示的局面。  我们把第一个图的局面记为:12345678.   把第二个图的局面记为:123.46758   显然是按从上到下,从左到右的顺序记录数字,空格记为句点。   本题目的任务是已知九宫的初态和终态,求最少经过多

2016-03-09 21:45:40 2137

原创 记忆化搜索——滑雪

Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 87592 Accepted: 32835 DescriptionMichael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走 上坡或者等待升降机来载你。Michael想知道载一个区域

2016-03-09 16:45:15 571

原创 记忆化搜索——地宫取宝

标题:地宫取宝X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。地宫的入口在左上角,出口在右下角。小明被带到地宫的入口,国王要求他只能向右或向下行走。走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可以拿起它(当然,也可以不拿)。注意是拿不是换当小明走到出口时,如果他手中的宝贝恰好是k件,则这些宝贝就可以送给小明。请你帮小

2016-03-09 09:16:11 633

转载 自守数

如果一个自然数的平方数的尾部仍然为该自然数本身,则称其为自守数。 例如: 5 x 5 = 25 76 x 76 = 5776 625 x 625 = 390625 下面代码的目的是寻找出2千万以内的所有自守数。 注意,2千万的平方已经超出了整数表达的最大范围,所以该程序使用了一个巧妙的方案。 如果我们仔细观察乘法的计算过程,就会发现实际上对乘积的尾数有贡献的

2016-03-08 17:17:47 832

原创 捡了西瓜丢芝麻——注意编程细节

勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形。已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数。求满足这个条件的不同直角三角形的个数。【数据格式】 输入一个整数 n (0“for(i=1;i<n;i++){//直角长边 for(j=1;j<=i;j++){//直角短边 if((i+j>n)){

2016-03-08 16:03:59 754

原创 dp学习——最大字段和

输入第1行:整数序列的长度N(2 <= N <= 50000) 第2 - N + 1行:N个整数(-10^9 <= A[i] <= 10^9)输出输出最大子段和。输入示例6 -2 11 -4 13 -5 -2输出示例20 这道题也可以用二重循环、三重循环做,但用dp可以更有效的得到解,dp数组的含义:定义dp[i]为输入的以a[i]结尾的最大字段和。 状态转移方程为

2016-03-07 18:59:06 942

原创 dp学习

给定一个m行n列的矩阵,矩阵每个元素是一个正整数,你现在在左上角(第一行第一列),你需要走到右下角(第m行,第n列),每次只能朝右或者下走到相邻的位置,不能走出矩阵。走过的数的总和作为你的得分,求最大的得分。输入第1行:N,N为矩阵的大小。(2 <= N <= 500) 第2 - N + 1行:每行N个数,中间用空格隔开,对应格子中奖励的价值。(1 <= N[i] <= 10000)输出输出能够获

2016-03-06 19:57:12 396

SSM开发Jar包,包括单元测试,JSON等,亲测可用

JavaEE中的SSM开发Jar包,包括单元测试,JSON等,亲测可用

2018-01-10

MyBatis逆向工程的Jar包

MyBatis逆向工程所需的Jar包

2017-07-31

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

TA关注的人

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