自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

maravilla_evol

waiting for...ur love

  • 博客(35)
  • 资源 (4)
  • 收藏
  • 关注

转载 Idea常用快捷键

原始地址http://www.cnblogs.com/EhPartment/archive/2012/08/24/2653789.htmlAlt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctr

2013-02-19 16:18:32 466

原创 写脚本的时候应该注意的几个问题

1.  任务出现问题时需要 返回失败码。例如,需要导入的数据文件不存在,即上游数据出了问题,这个时候需要返回错误码,方便处理,通知到相关开发人员等2. 批量导入任务时,需要考虑到某些任务可能失败的风险,如果这些可以失败的任务是允许的,那么,需要做处理,以免失败中断程序,影响其他任务3. 脚本应该是可以支持重跑的。比如因为某些原因,例如网络原因,机器故障等导致的脚本执行中断,load任务失败

2012-07-21 09:01:48 1569

原创 Eclipse快捷键大全(转载)

Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Alt+↑ 当前行和上面一行交互位置(同上)Alt+← 前一个编辑的页面Alt+→ 下一个编辑的页面(当然是针对上面那条来说了)Alt+En...

2011-09-20 09:40:06 152

原创 线程的同步问题(java)

1,使用synchronized 关键字     synchronized关键字可以修饰方法,当修饰方法的时候,多个被修饰的方法只能被一个线程访问          synchronized关键字修饰代码段    synchronized(this)     { ...

2011-07-25 17:22:05 751 1

原创 青蛙过河

一条长度为L的小河上飘着一些荷叶,青蛙要踩着这些荷叶过河。由于河宽和青蛙一次跳过的距离都是正整数,我们可以把青蛙可能到达的点看成是数轴上的一串整点:0,1,2,。。。,L。坐标为0的点在河的一次,坐标为L的点在河的另一侧。青蛙从坐标为0的点开始,不停的向坐标为L的点跳跃。一次跳跃

2011-07-19 11:24:35 1074

原创 棋盘移动问题

 5*5的棋盘上有24个棋子,有一个空位,棋子都不相同,现在随意的移动空位,只知道棋盘的初始状态和终止状态,以及每一种移动方法的次数,例如上5次等,求是否存在这样一个序列,如果存在,输出该序列,否则输出0该题目的剪枝条件为1,横向移动步数之和与初始坐标之和为目标坐标,同理纵向移动步数2,每个方向的移动步数小于等于该方向最大的步数3,每次移动不能超过边界算法为典型的回朔法

2011-06-07 16:07:00 1719

原创 低频词过滤

低频词过滤题目描述:请编写程序,从包含大量单词的文本中删除出现次数最少的单词。如果有多 个单词都出现最少的次数,则将这些单词都删除。 输入数据:程序读入已被命名为 corpus.txt 的一个大数据量的文本文件,该文件包含英 文单词和中文单词,词与词之间以一个或多个 whitespace 分隔。(为便于调试,您可下载 测试corpus.txt 文件,实际运行时我们会使用

2011-06-07 15:53:00 3813 1

原创 重叠区间大小

<br /> <br /><br />题目描述:<br /> <br />请编写程序,找出下面 “ 输入数据及格式 ” 中所描述的输入数据文件中最大重叠区间的大小。<br />对一个正整数 n ,如果 n 在数据文件中某行的两个正整数(假设为 A 和 B )之间,即 A<=n<=B 或 A>=n>=B ,则 n 属于该行;如果 n 同时属于行 i 和 j ,则 i 和 j 有重叠区间;重叠区间的大小是同时属于行 i 和 j 的整数个数。<br /><br /> <br />例如,行( 10 20 )和( 1

2011-06-02 16:30:00 968

原创 整数分解成连续整数之和的方法

<br /> <br />定理:一个数如果可以表示成为连续的正整数之和的形式,则必定包含大于1的奇因子<br /> <br />证明:如果一个数m可以表示成为 a+(a+1)+,...,+(a+k)<br />         则m=(a+a+k)*(k+1)/2;因为 a+a+k-k-1=2*a-1为奇数,所以m必然包含一个奇因子。<br /> <br />表示法:对于每一个正整数,可以表示成为(奇因子个数)个连续整数的表示。对于每一个奇因子2*k+1,都可以表示成为m=(2*k+1)*n的形式,则m可以

2011-05-31 16:04:00 2617

原创 分石子的问题(n个石子放入m个筐子,两堆石子游戏,一堆石子游戏)

<br />将三类分石子的问题整理到一起<br />问题一:有n个石头,k个框子。把n个石头按顺序放入k个框子,比如1~3放入1,4~6放入2,要求最大重量的框子的重量最小的放法。<br />设石子的重量分别为Q1,Q2,...<br />g(i,j)=Qi+,...,+Qj;<br />f(i,j)表示把i个石子放到j个框的最大重量框的重量。<br />则f(i,j)=minj-1<=p<i(f(i,j),max(f(p,j-1),g(p+1,i)));<br />g(i,i)=Qi

2011-05-24 10:57:00 3351

原创 中世纪剑士

n个人决斗,两两之间有强弱关系,强弱关系不传递,例如a>b,b>c,c>a。n个剑士围成一个圈,一次抽签,抽中的人和他右边的人决斗,输了的人出圈。现在问是否存在一种决斗方式让第k个人生出,计算可能胜出的的人数和方案。这个题目让我想起了围成一个圈的猴子的题目,那个题目是约瑟夫问题。和这个不一样。这个题目:一个人要胜出,则要胜了所有右边的人,同时也要胜出左边的人。因为是围成一个圈,所以该人胜出的话,最终肯定是自己跟自己相遇。那么,这种情况下,把圈展开成一个链,将该链延长一倍,如果i和i+n可以相遇,则说明i可以

2011-05-23 10:51:00 1046

原创 整数划分问题

给定一个自然数,分成k部分,A1,A2..的数的和,要求A1#include #define MaxN 100class SplitToKNum{ public: SplitToKNum() { std::cin>>n; std::cin>>k; memset(f,0,sizeof(f)); for(int i=1;i

2011-05-20 16:23:00 1106

原创 小花店问题

F束花从左到右放在V个花瓶里面(1这个题和最大公共子串的思考角度相似。由于花必须要小于等于瓶子。而且花的编号由小到大,不能乱序。例如就不能把出现【2,4】 【1,5】这种现象。也就是说插在花瓶中的花按照花瓶的顺序,序号升序排列。  不妨用f(i,j)来表示把前i朵花插入前个瓶子中。当i=j时,f(i,j)=v[1,1]+v[2,2]+...+v[i,i];当i=0时,f(0,j)=0; 当i!=j, 且i!=0时f(i,j)=max(f(i,j-1),f(i-1,j-1)+v[i,j]) ,i#includ

2011-05-16 16:36:00 647

原创 陪审团问题

<br /> <br />问题描述:<br />问题描述<br />在遥远的国家佛罗布尼亚,嫌犯是否有罪,须由陪审团决定。陪审团是由法官从公众中<br />挑选的。先随机挑选n 个人作为陪审团的候选人,然后再从这n 个人中选m 人组成陪审团。<br />选m 人的办法是:<br />控方和辩方会根据对候选人的喜欢程度,给所有候选人打分,分值从0 到20。为了公<br />平起见,法官选出陪审团的原则是:选出的m 个人,必须满足辩方总分和控方总分的差的<br />绝对值最小。如果有多种选择方案的辩方总分和控方

2011-05-16 15:58:00 1376

原创 最大公共子串问题

<br /><br />最大公共子串问题<br />这个是动态规划的基础题目。动态规划就是递推和重复子结构。<br />确定了递推关系后。找到一个能极大地减少重复运算的子结构至关重要。选的好了,时间效率会很好。<br />这个问题,不妨设第一个串为a,长度为n,第二个串为b,长度m。那么最长的子序列长度为f(n,m)<br />当a[n]=a[m]时<br />f(n,m)=1+f(n-1,m-1)<br />否则f(n,m)=max(f(n-1),f(m-1))<br />同时建立一个存储计算过的f(x,

2011-05-13 16:24:00 749

原创 Raney引理

Raney引理:         设整数序列A={Ai,i=1,2,...,N},且部分和为Sk=A1+,...,+Ak,序列中的所有的数字之和为Sn=1;         则在A的N个循环表示中,有且仅有一个序列B,满足B的任意部分和Si均大于零。证明:      由于Sn=1,则Sk+Sn=Sk+1,存在这样一个数x,当在x和x+1之间的某点过后,其后所有的点都在0以上。      用几何图形来说明就是,用两条线夹住Si的曲线,在每连续N个单位的长度中,直线与函数图像有且仅有一个交点。因为斜率为1/N,

2011-05-09 10:53:00 2727

原创 排列问题

<br />      在整数1,2,...,N的排列中,有些排列满足下面一个性质A:该排列中除了最后一个整数外的每一个整数后面都跟有一个与它相差为1的数字。设有N个数字,已知一部分位置上的数,求满足性质A的排列有多少个?<br />      <br />分析:假设只有一个数字, 即N=1,则满足A条件。若只有两个数字,则一定满足。若有三个数字,不论最后一个数字是什么,满足A条件的后缀序列必然是连续数字组成的集合。例如3个数字的时候,后两个数字不可能为(1,3)。根据这个属性我们设计动态规划算法。<br

2011-05-08 16:55:00 493

原创 KMP 字符串匹配算法

       KMP算法是一种线性时间字符串匹配算法,这个算法不用计算变迁函数,匹配时间为O(n),只用到了辅助函数π,这是在O(m)的时间内根据模式预先计算出来的。      模式的前缀函数π包含有模式与自身的位移进行匹配的信息。简单的来说,如果字符串中某前缀的后缀包含了某前缀,则在比较的时候能够免去对无用位移进行测试。      简单的用java代码实现如下所示package algorithmTraining;public class KMP { public static void ma

2011-05-07 21:19:00 579

原创 排队

<br />篮球队员身高问题<br /> <br />n个篮球队员,平均身高2000mm,身高范围1950~2050mm。求一个排列,使得对于任意一个给定的k,任意k个连续队员的身高之和与k*2000之差的绝对值小于100<br />方法:首先,预处理,所有的减去2000,有负有正,分为两个数组。初始总值为0.如果总值加上一个正值小于50,则加上该正值,否则,加上一个负值。由于条件的限制,每个数值的绝对值一定是小于50的。最终一定能找到这样一个序列,因为所有的队员的平均身高为0(2000)<br />#in

2011-05-06 17:23:00 451

原创 青蛙的烦恼

<br />      池塘里有n片荷叶,围成了一个凸多边形。荷叶的编号分别为1,2,3,。。n,n<=1000, 求一种青蛙的跳跃策略,使得青蛙跳过的距离最短,并且遍历了所有的荷叶<br /> 分析:最短距离并非遍历凸多边形的所有的边。例如:A(2 3),B(6 3),C(4 1),D(1 1),四个点组成的凸多边形,最短的遍历路径为ADBC,经过了对角线DB。<br /> <br />使用动态规划解这道题目。子问题为每个节点周围节点数目为1,2,3,..,时候的问题,在解题的过程中,不断的扩大每个节点周

2011-05-06 16:38:00 1059

原创 海战游戏

<br />在N*M的矩阵上,放置了L个军舰,军舰的左上角坐标为ux,uy,左下角坐标为dx,dy。军舰是一个矩形。现在要放置第L+1个军舰,但是军舰不能重叠,并且上下左右,上左,上右,下左,下右都不能相邻。求放置一个长为p,宽为q的军舰的放置方案数(放置方案)。<br />2<=N,M<=30000,L<=30;<br /> <br />朴素的方法。对军舰可以放置的位置进行枚举,并且判断每一个位置是否与其他军舰冲突。时间复杂度为O(MNL)<br /> <br />补集的方法。计算所有冲突的位置,用总放置

2011-04-15 11:51:00 891

原创 String StringBuffer StringBuilder

部分整理来自我的163博客。同时以前没有注意到StringBuffer和StringBuilder的区别。这里一并总结了从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。StringBuffer是线程安全的,线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调

2011-04-14 14:55:00 498

原创 单色三角形

空间里有n个点,任意三点不共线。每两个点之间都用红色或者黑色线段链接。如果一个三角形的三条边同色,责成这个三角形是单色三角形。对于给定的红色线段列表,找出单色三角形的个数。分析:如果直接找需要枚举所有的三个点的组合,有C(n,3)种组合,当n比较大的时候,需要枚举的组合很多,复杂度为O(n3);但是在遍历每个点的时候都可以枚举颜色不同的两条边。则每个点上不同的颜色的三角形有R*B,R为红色边的个数,B为黑色边的个数。所有点上的不同颜色边组之和为Q,则总共有C(n,3)-Q/2种相同颜色的边。时间复杂度变为了

2011-04-14 13:46:00 2137

原创 单色三角形问题

空间里有n个点,任意三点不共线。每两个点之间都用红色或者黑色线段链接。如果一个三角形的三条边同色,责成这个三角形是单色三角形。对于给定的红色线段列表,找出单色三角形的个数。1,如果直接找需要枚举所有的三个点的组合,有C(n,3)种组合,当n比较大的时候,需要枚举的组合很多,复杂度为O(n3);但是在遍历每个点的时候都可以枚举颜色不同的两条边。则每个点上不同的颜色的三角形有R*B,R为红色边的个数,B为黑色边的个数。所有点上的不同颜色边组之和为Q,则总共有C(n,3)-Q/2种相同颜色的边。时间复杂度变为了O

2011-04-14 11:11:00 2773

原创 积木问题

<br />     有N块积木,我们需要用这些积木造塔。每个塔有H层,最底层包含M块积木;对于上面的每一层,包含的积木块数必须比下面一层的多1或者少1.<br /> 给定输入条件:积木数N,塔的层数H,最底层的积木数M,积木不一定要用完。求方案总数<br /> <br />使用动态规划的方法。同时使用剪枝条件进行剪枝<br />剪枝条件:当前剩余的积木数量不足以构建H层的塔,则终止当前的方案<br />               当前剩余的积木数量大于所需的最大数量:每层递增1的所有层的和。同时如

2011-04-12 17:15:00 3069

原创 错排问题

n个有序的元素应有n!种不同的排列。如果一个排列使得所有的元素都不在原来的位置上,则称这个排列为错排。任给一个n,求出1,2,3,。。。,n的错排个数D为多少,并且给出所有的错排方案例如1,2,3,4,每个数字不在自己的位置上就是错排,求错排数量和错排方案求数量方案一,F(n)=n!-C(n,1)F(n-1)-C(n,2)F(n-2)-...-C(n,n)F(0)。F(0)=1;F(1)=0;该方案不能用来求错排方案方案二:求错排的两种方式            方式a,n与1,n-1交换,剩下的n-2个元

2011-04-12 17:05:00 2867

原创 一些小题目

以前的那篇文章写得太长了,重开一篇1,平面分割问题设有n条封闭曲线画在平面上,任何两条封闭曲线恰好相交于两点,任何三条封闭曲线不相交于同一点,问这些封闭曲线把平面分割成的区域个数。实际上。第n个曲线增加了平面的区域个数为2(n-1)A(n)=A(n-1)+2(n-1),当n=1时,A(1)=2代码简单的递推或者递归都可以实现

2011-02-20 21:07:00 609

原创 线段树总结

区间有关的问题,如记录一个区间的最值和总量,并在区间的插入,删除修改中维护这些最值和总量,用线段树是很方便的。线段树拥有良好的树形二分特性。详细的概念参考百度百科http://baike.baidu.com/view/670683.htm在实现中,用以下几个变量就足够了。n记录一共用到了多少个节点,B表示每个顶点的线段的起点,E[i]表示每个线段的终点,C是权值,表示某个线段上的权。初始值为0。用lson和rson分别表示左孩子和右孩子实现一个线段树,代码如下#ifndef SegmentTree_H#

2011-02-15 15:49:00 549

原创 linux 下的多进程编程 总结

这篇文章我慢慢的写,可能需要1~2个礼拜1,实现多进程的方法在linux下,实现多进程编程主要依靠两个方法a,fork(),通过复制当前进程来建立新的进程,最基本的新建进程的操作,新建的进程为调用进程的子进程,属于同一个进程组     fork创建子进程的时候,会返回两个值,在父进程中返回子进程的标示,在子进程中返回0。因为fork会把父进程拷贝一份,所以分别返回就不足为奇了。b,exec  exec是一系列方法,其实功能是一样的,只是参数不一样,方便使用。exec的方法通过用一个新的程序覆盖原内存空间,来

2011-01-05 10:29:00 745

原创 linux(ubuntu 9.10)下socket(tcp/ip)通信

客户端代码 #include #include #include #include #include #include #include #include #define SERVPORT 3333 #define MAXDATASIZE 100 /*为每次最大数据传输量 */ int main(int argc,char * argv[]){ int sockfd,recvbytes; char buf[

2010-12-21 22:23:00 2458

转载 匈牙利算法

http://wapedia.mobi/zh/%E5%8C%88%E7%89%99%E5%88%A9%E7%AE%97%E6%B3%95匈牙利算法匈牙利算法是众多用于解决线性任务分配问题的算法之一,是用来解决二分图最大匹配问题的经典算法,可以在多项式时间内解决问题,由匈牙利数学家Jack Edmonds于1965年提出。目录:1. 问题简介2. 算法描述3. 时间空间复杂度1. 问题简介设G=(V,E)是一个无向图。如顶点集V可分割为两个互不相交的子集V1,V2之并,并且图中每条边依附的两个顶点

2010-12-08 16:07:00 940

原创 关于图算法的总结

例,01问题求长度为n的01串,满足如下条件1,长为L0的连续子串中0的个数不少A0,不多于B02,长为L1的连续子串中的1的个数不少于A1,不多于B1如果不存在,输出-1这个题可以构造图,然后求图的各点的最短路径。由于上述1,2条件的存在,对于任意的k,用f(k)表示前k串的和则f(k+L0)-f(k)>=L0-b0   f(k+L0)-f(k)   f(k+L1)-f(k)>=a1   f(k+L1)-f(k)   f(k+1)-f(k)>=0   f(k+1)-f(k)根据由于该算法中权值存在负值,所

2010-12-01 10:35:00 4449 1

原创 关于回朔算法

回朔法是计算机程序设计中通用的算法随着计算机性能越来 越好,穷举已经成为了解决问题的一个有效地途径。在穷举途径中采用回朔的方法,关键是要设计好剪枝方法。通用的回朔法的程序模板如下(《挑战编程》)#include "stdafx.h"#define maxCandidates 20bool finished=false;backtrack(int a[],int k;int input){ int c[maxCandidates]; int ncandidates; int i=0

2010-11-30 16:36:00 2725

原创 关于动态规划算法的总结

动态规划算法,在T大某位老师的书中说就是递推+重复子问题。动态规划算法的效率主要与重复子问题的处理有关。典型的题目有 陪审团,最大公共子串问题1,最大公共子串问题这个是动态规划的基础题目。动态规划就是递推和重复子结构。确定了递推关系后。找到一个能极大地减少重复运算的子结构至关重要。选的好了,时间效率会很好。这个问题,不妨设第一个串为a,长度为n,第二个串为b,长度m。那么最长的子序列长度为f(n,m)当a[n]=a[m]时f(n,m)=1+f(n-1,m-1)否则f(n,m)=max(f(n-1),f(m-

2010-11-24 15:42:00 11086 3

原创 一些算法及题目总结

1. 广告排名区间 问题背景 shifen广告消费预估系统可以估计出一段时间内一个特定的广告在检索结果中排在各个位置的几率。比如系统对某广告的输出如下: p1 = 0.03, p2 = 0.08, p3 = 0.04 …… 这说明该广告展现在第1位的概率是 3%,展现在第2位的概率是 8%,展现在第3位的概率是 4%…… 问题是:如何给出一个排名估计区间[i, j],使得广告出现在该区间中的概率大于或等于一个预设值p,同时这个区间所包含的元素尽可能的少。也可用数学语言来描述:给定数p和数列 p1, p2, 

2010-11-14 17:05:00 2965

linux 网络编程pdf 详细的介绍了linux下的网络编程,进程编程

linux 网络编程pdf 详细的介绍了linux下的网络编程,进程编程,tcp/ip 进程编程,进程控制。

2010-12-30

编程高手箴言,撇开了具体的语法谈高级程序员的炼成

好书,看了后很有体会。当然这本书中有图片淡入淡出的c++/c示例

2010-12-29

空空如也

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

TA关注的人

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