自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (6)
  • 收藏
  • 关注

原创 遗传算法解决背包问题

//总体思想与之前的相似,评价函数就是物品的价值之和,但要注意一旦物品的重量大于背包的重量,那么该条染色体的幸存概率为0//基因就是每一个物品是否选择,这里默认有10条染色体在比较,并且每一条染色体上的第i个基因就是代表第i个物品是否选择//突变就是随机选择的染色体的随机位置由0变1,由1变0//另外建议把变异的概率调高点,否则有可能会陷入局部最优#include #includ

2016-02-29 23:10:28 7720 4

原创 遗传算法解决tsp问题

本文主要介绍遗传算法的一些基本思想,主要是代码思想方面的,并不用于考试....在我的资源中可以找到一份课件(并不是我们学校的,是老师给的,我们貌似并不开这门课)另外会在下一篇附上用遗传算法解决tsp问题的代码。遗传算法的思想其实和生物学有密切的联系(话说我高中选的是生物,已经忘光了哈),遗传算法相比与动态规划,贪心之类的算法,区别主要在于,贪心之类的一开始给出一种计算方式,而我们从已知条件

2016-02-29 00:04:25 4877 3

原创 连续邮资问题(回溯+动态规划)

这个程序debug了好长时间....一个晚上都耗上面了这个程序实际上每一部分并不复杂,但是动态规划那边边界错了好长时间。题目:假设国家发行了n种不同面值的邮票,并且规定每张信封上最多只允许贴m张邮票。连续邮资问题要求对于给定的n和m的值,给出邮票面值的最佳设计,在1张信封上可贴出从邮资1开始,增量为1的最大连续邮资区间。例如,当n=5和m=4时,面值为(1,3,11,15,32)的5种邮票

2016-02-25 22:07:45 12994 3

转载 连续邮资问题

题目大意:某国家发行k种不同面值的邮票,并且规定每张信封上最多只能贴h张邮票。 公式n(h,k)表示用从k中面值的邮票中选择h张邮票,可以组成面额为连续的1,2,3,……n, n是能达到的最大面值之和。例如当h=3,k=2时, 假设两种面值取值为1,4, 那么它们能组成连续的1……6,  虽然也可以组成8,9,12,但是它们是不连续的了。分析与总结:连续邮资问题,这个算是很经典

2016-02-25 12:15:42 5222

原创 硬币找零问题(完全背包)

#include #include int a[100];int dp[100][1000];int min(int a,int b){ return a<b?a:b;} int main() { int n,m,i,j,k,ans; scanf("%d%d",&n,&m); for (i=1;i<=n;i++) scanf("%d"

2016-02-25 11:07:09 1371 1

原创 快速排序求第k小的数

快速排序求第k小的数,思想非常简单,就是如果要查找的k比当前下标low小,则只递归左部分,大则递归右部分,相等则递归右部分,当然由于数组下标从0开始,所以应该是k-1,(比如第一大的数数组下标为0),原理就是快速排序是以一个元素为分隔的,如果求第k大的元素,就是求第n-k+1小的元素.#include int i,j;void quicksort(int a[],int left,int

2016-02-24 10:56:45 6662 2

原创 hdu1207

多了一根柱子,还是原来的移动方法,只不过原来是先将n-1移开,再移动剩下1个,而现在多了一根柱子,所以可以先将原来x根借助两根柱子移开,再将剩下拉的n-x借助一棵柱子移开(2^(n-x)-1),状态转移方程f[n]=min(f[j]*2+2^(n-j)-1)#include #include __int64 f[70];__int64 ans;void dp(){ int i,

2016-02-24 10:27:09 596

原创 hdu1159(最长公共子序列)

坑的一笔,我脑残了,一直wa,原来的代码是从0开始遍历,这样if (a[i]==b[j])dp[i][j]=dp[i-1][[j-1]就会数组下标越界,所以经过修改才正确.附AC代码:#include #include char a[505];char b[505];int dp[505][505];int max(int c,int d){ return c>d?c:

2016-02-23 22:04:04 1687

原创 完全背包hdu1248

不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的死掉,他决定给自己买一些道具,于是他来到了地精商店前.死亡骑士:"我要买道具!"地精商人:"我们这里有三种道具,血瓶150块一个,魔法药200块一个,无敌药水350块一个."死亡骑士:"好的,给我一个血瓶."说完他掏出那张N元的大钞递给地精商人.地精商人:"我

2016-02-23 18:23:47 610

原创 矩阵链乘(动态规划)

核心语句:ans=min(ans,d[i][k]+d[k+1][j]+m[i]*m[k+1]*m[j+1]); 其中m[i]*m[k+1]*m[j+1]可以类比普通求矩阵的代码#include #include int m[1005]; int d[1005][1005]; int n; int min(int a,int b) { return a<b?a:b;

2016-02-23 10:08:51 565

原创 jsp继续学习(request对象)

action处理页面的名字,method提交的方式request.getParameter可以获得text类型的提交内容,后面跟text类型的namerequest.getParameterValues可以获得checkbox类型的选型的value,后面跟checkbox类型的name这是Index页面<%String path = request.getContext

2016-02-22 23:06:56 341

原创 备用交换机(割点)

n个城市之间有通讯网络,每个城市都有通讯交换机,直接或间接与其它城市连接。因电子设备容易损坏,需给通讯点配备备用交换机。但备用交换机数量有限,不能全部配备,只能给部分重要城市配置。于是规定:如果某个城市由于交换机损坏,不仅本城市通讯中断,还造成其它城市通讯中断,则配备备用交换机。请你根据城市线路情况,计算需配备备用交换机的城市个数,及需配备备用交换机城市的编号。分析:无向图求割点。求割点分

2016-02-22 21:46:09 915

原创 jsp继续学习

//表单提交的两种方式get 和post//get传输量小且安全性低(用户名和密码都能在URL中看到),但效率高//Post很适合做数据量大且安全性要求高的页面//顺便复习一下表单的标签//这是index.jsp的页面<%String path = request.getContextPath();String basePath = request.getScheme()

2016-02-21 19:24:42 293

原创 poj3254(状态压缩dp)

//状态转移方程:dp[i][k]=求和(dp[i-1][t])(其中k和t是上下没有一个庄稼在同一行,这个状态怎么表示就是用压缩,比如上一行是101,这一行是010就可以)所以dp[i][5]肯定包含dp[i][2]//&运算,按位与运算//比如8&10,其中8的二进制是0000 1000,而10的二进制是0000 1010,因此// 0000 1000(十进制8)//

2016-02-21 18:32:18 316

原创 jsp继续学习

对于out对象println 向客户端打印字符串clear 清除缓冲区内容,如果先用flush会抛出异常clearbuff 清除缓冲区,如果先用flush不会抛出异常flush 将缓冲区内容输出到客户端(就是原来在脚本运行结束后一起输出,现在一旦遇到flush会先将之前保存在缓冲区的内容输出)getBufferSize 返回缓冲区大小,字节表示getRemaining 返回

2016-02-21 12:18:21 286

原创 jsp打印九九乘法表

表示自学伤不起啊,java学的就很莫名其妙,一开始我把函数写在标题的里面为什么就错了,也不懂,总之,如果用表达式来打印九九乘法表,一定要有一个函数返回的是字符串,然后调用之,如果用脚本(也就是自己的事情自己解决),要用到自带的out其次因为有中文,注意编码格式<%String path = request.getContextPath();String basePath = requ

2016-02-21 11:02:29 3131

原创 线段树(hdu1166)

#include #include #include typedef struct STU{int grade;int left;int right;}STU;STU st[2097152];int num[2000001];int max(int a,int b){ return a>b?a:b;}void BuildTree(int i,int left,in

2016-02-20 21:59:48 290

原创 NYOJ116

NYOJ116注意数组大小#include #include #include typedef struct STU { int grade;//不管是求区间最大值,还是次数,修改的都是grade,也就是grade的求法不同,比如这里是每一个节点的grade一定是他所掌控区间的grade中的最大值 int left,right; }STU;//节点个数 STU st[209

2016-02-20 17:40:40 460

原创 线段树第一题!(激动啊)

今天刚到学校,收拾了一下,便研究一下线段树,之前在车上看了一会,有点懂,趁热打铁....线段树第一题啊~~hdu1754#include #include typedef struct STU { int grade;//不管是求区间最大值,还是次数,修改的都是grade,也就是grade的求法不同,比如这里是每一个节点的grade一定是他所掌控区间的grade中的最大值

2016-02-20 16:49:40 380

原创 jsp的继续学习

脚本程序可以包含任意量的Java语句、变量、方法或表达式,只要它们在脚本语言中是有效的。脚本程序的语法格式:一个声明语句可以声明一个或多个变量、方法,供后面的Java代码使用。在JSP文件中,您必须先声明这些变量和方法然后才能使用它们。JSP声明的语法格式:一个JSP表达式中包含的脚本语言表达式,先被转化成String,然后插入到表达式出现的地方。由于表达式的值会被

2016-02-19 21:54:28 313

原创 我的第一个jsp程序

捣鼓了半天才弄出第一个jsp程序.在不用IDE的情况下,在tomcat的文件夹下新建一个文件夹myhome,在文件夹下建立一个txt起名index.jsp同时新建一个WEB-INF的文件夹,里面有两个文件夹(起名classes和lib里面都为空),拷贝tomcat下examples里的WEB-INF里的web.xml,修改里面的内容(开头的注释可以去掉,中间从WEB-INF两个标签之间的全部去

2016-02-18 23:11:49 968

原创 tomcat7.0的部署

jdk的安装一般在学习java中已经涉及首先下载tomcat压缩包,地址http://tomcat.apache.org/,点击download,选择符合选项下载,如我是选择64-bit Windows zip,下载后解压缩(这个无需安装,一定要记住解压缩的地址)打开配置java环境变量的地方,在系统变量处新建变量,变量名CATALINA_HOME,变量值刚刚解压缩的地址,此时不出意外已经安装

2016-02-18 22:07:47 742

原创 关于直接在Windows下编译java

首先写好java代码,保存后缀名为.java格式,输入cmd进入命令行模式,假设文件是放在e盘下的,输入e:进入e盘,先输入javac+文件名(含后缀名),回车后再输入java+文件名(不含后缀名)原理是:源文件->(编译器)使用javac命令->字节码文件(不同平台是相同的,这也是java跨平台的原因)->解析器

2016-02-18 19:42:23 2025 1

原创 巴什博弈(hdu1846,hdu2147,hdu2149)

最简单的巴什模型是:只有一堆n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。很容易想出策略,如果n%(m+1)==s(s!=0),那么我先取出s个,后面他任意取出1~m中的一个数k,我就取出m+1-k这样保证每一次和为m+1,这样一定是我最后取出。所以若n%(m+1)==s那么先出的赢,反之若n%(m+1)==0,那么先取得必输.更普遍的现

2016-02-15 18:18:11 465

原创 usaco2008渡河问题(简单dp)

Farmer John以及他的N(1 状态转移方程dp[i]=min(dp[i],dp[j]+dp[i-j]+m)(j#include int n,m; int dp[2505]; int min(int a,int b) { return a<b?a:b; } int main() { int i,j,c; w

2016-02-14 21:18:39 1017

原创 poj1611(超水并查集)

更新dota2的时候水了一题...好水#include int pre[300005];int n,m;int find(int i) { int j=i,temp; while (pre[i]!=i) i=pre[i]; while (j!=i) { temp=pre[j];//先记录下下一个长官

2016-02-14 12:40:25 355

原创 poj1050(最大子矩阵和)

首先复习一下最大字段和:一般有两种写法int dp(int sum[105],int k){ int i,b,max; max=sum[0]; b=sum[0]; for (i=1;i<k;i++) { if (b<0)//如果之前的和小于0 b=sum[i]; else b=b

2016-02-14 11:45:31 459

原创 poj1456(两种做法)

带时限的作业排序~~#include #include #include #include using namespace std; struct node { int p; int t; }; node a[10005]; int visit[10005];int cmp(node c,node d)//按照收益从大到小,相同收益则时间后的在前{

2016-02-13 19:20:36 541

原创 poj1157(两种不同的解法)

题目大意是有f种花插入v种花盆中,告诉你a[i][j](第i种花插入第v个花盆中的高兴值),注意若x种花用了第y种盆子,则下一种花只能在y+1~v种选择自己想出来的状态转移方程是f[i][j]=max(f[i-1][k])+a[i][j](i-1写出伪代码for (i=1;i<=f;i++) for (j=1;j<=v;j++) { ans=min; f

2016-02-13 18:32:48 730 1

原创 noj1031建筑群最长坡值

最长递减序列,状态转移方程dp(i)=max(dp(j))+1(jDescription建筑群所有建筑高度分别为h1、h2…hN,可以得到一些单调递减的序列hi1、hi2…hiK,其长度称为建筑群的坡值,这里1≤i1≤N。你的任务:对于给定的建筑群所有建筑高度,求出建筑群最长坡值。Input第一行是建筑群中的建筑数N(1≤N≤1000)。第二行依次给出各个建筑的高度(大小从0到10

2016-02-12 19:52:20 366

原创 最大连续两段不相交字段和(poj2594,poj2479)

首先说一下连续字段和的求法动态方程很容易推出b(i)=max(b(i-1),0)+a[i];定义b(i)为以i为结尾的最大连续和(注意这边是以i结尾,一定包含i,而如果我是求到第i个最大值还需要求出所有1~i的b(i)中的最大值)00000,最后再求出最大的b(i) l[0]=a[0]; for (i=1;i<n;i++) { if (l[i-1]>0)

2016-02-12 16:26:17 635

原创 poj3641

题意是输入p,m如果 p是素数输出no否则看m的p次方%p是否等于m,要用到快速幂取模,复习一下#include #include __int64 modular(__int64 a,__int64 b,__int64 c)//快速幂取模(a的b次方取余c){ __int64 ans=1; a=a%c; while(b>0) { if

2016-02-12 10:24:21 589

原创 poj1154(大水题)

//用一个visit判重#include #include int r,s; char a[25][25]; int max; int visit[30]; void DFS(int x,int y,int step) { int c[]={-1,1,0,0}; int b[]={0,0,1,-1}; int i,j; if (step>

2016-02-12 09:35:50 420

原创 子集和数

//问题陈述:给定N个数,和一个数M,判定是否可以从N个数中取出若干个数,使它们的和等于M。//对于每一个集合里的数,都有加入和不加入,因此两次递归,剪枝就是发现即使我后面全部放入也不够就不用再搜索了#include #include int a[1000];int n;void DFS(int ans,int step,int r,int x[1000]){ int i,j

2016-02-11 22:17:56 1954

转载 我的算法学习之路 (转载)

关于严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以我认为本文题目是合理的。如果你使用的是手机或平板设备,那么请点击下面的链接以获得更好的阅读效果:http://zh.lucida.me/blog/on-learning-algorithms/原文作者:Lucida

2016-02-11 20:53:50 380

原创 hdu1009

//简单的贪心,注意边界情况#include #include #include using namespace std;using namespace std; struct node { double w; double v; double k; }; int cmp(node c,node d) { return c.k>d.k;

2016-02-11 20:28:12 1204

原创 codeforces #341(A,B)

//一开始脑残了,用高精度来写的,后来发现int64就可以#include int main() { __int64 sum; int i,m,n,min; scanf("%d",&n); sum=0; min=999999999; for (i=0;i<n;i++) { scanf

2016-02-02 20:02:27 355

mybatis所用的jar包

mybatis开发中所使用的jar,还请不要误删..

2017-05-23

spring aop的jar包

spring框架aop使用的jar包,需要链接到博客里,因为学习spring经常对所用 jar包迷糊,需要做整理。还望不要误删了....

2017-05-19

spring jar包

spring jar包

2017-05-07

java实现的拼图游戏

拼图游戏

2017-01-28

java拼图游戏

java拼图游戏

2016-12-28

遗传算法的讲义

遗传算法的简单介绍,是做项目时老师给的,应该不会太差的吧...

2016-02-28

空空如也

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

TA关注的人

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