背包问题



背包问题

问题描述:给定n种物品和一背包,物品i的重量是wi,其价值是pi,背包的容量是M,问如何选择装入背包中的物品总价值最大?

可以这样理解:背包的背负有上限,因此在这个上限内尽可能多的装东西,并且价值越多越好。

在这里我之想讨论动态规划解决这个问题的详细过程。
问题的特点是:每种物品一件,可以选择放1或不放0。
用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。则其状态转移方程便是:
f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}
这个方程非常重要,据说基本上所有跟背包相关的问题的方[......]

Read more

使用MyEclipse的hibernate工具从数据库反向生成实体Bean



使用MyEclipse的hibernate工具从数据库反向生成实体Bean

本文介绍如何使用MyEclipse的hibernate工具从数据库反向生成实体Bean.使用的STS的孩子也可以使用, STS中已经有了这个工具,至于javaEE版本的Elicpse有没有我就不知道了,好久没碰Eclipse了,现在主要用STS和MyEclipse。

一、打开MyEclipse,切换到MyEclipse Database Explorer 透视图下,如果不知道什么是透视图或者不知道怎么切换透视图,我建议你先多多熟悉熟悉IDE吧。STS里面可能不是这名字,但意思都差不多。

切换之后,你将[......]

Read more

dom4j 最常用最简单的用法

dom4j 最常用最简单的用法

要使用dom4j读写XML文档,需要先下载dom4j包,dom4j官方网站在 http://www.dom4j.org/
目前最新dom4j包下载地址:http://nchc.dl.sourceforge.net/sourceforge/dom4j/dom4j-1.6.1.zip

解开后有两个包,仅操作XML文档的话把dom4j-1.6.1.jar加入工程就可以了,如果需要使用XPath的话还需要加入包jaxen-1.1-beta-7.jar.

以下是相关操作:

一.Document对象相关
1.读取XML文件,获得document对[......]

Read more

JAVA对象Bean输出(toString)

JAVA对象Bean输出(toString)

我们知道在对象中实现toString方法后,输出对象就可以按相应格式输出,但是假如一个对象复杂,写这个toStirng是比较麻烦的。

提供3种方法,均为开源包:

1、commons-lang包中的org.apache.commons.lang.builder.ToStringBuilder.reflectionToString方法。

log.info(“对象内容为:”+ToStringBuilder.reflectionToString(obj));

 

2、JSON中的JSONArray或JSONOb[......]

Read more

Apache DBUtils使用总结

Apache DBUtils使用总结

DBUtils是个小巧的JDBC轻量级封装的工具包,其最核心的特性是结果集的封装,可以直接将查询出来的结果集封装成JavaBean,这就为我们做了最枯燥乏味、最容易出错的一大部分工作。

在使用DBUtils之前,应该注意一些问题:

1、DBUtils是JDBC的简单封装,可以和JDBC混合使用。

2、DBUtils对结果集自动封装为JavaBean是有着苛刻要求的:必须满足JavaBean的规范,其次Bean的getter与setter方法的名字与结果集的列名一一对应,而不要求JavaBean的私有成员与表结果集列名一一对应。
比[......]

Read more

JavaBean对象与Map对象互相转化

JavaBean对象与Map对象互相转化

JavaBean对象与Map对象互相转化
[java] view plaincopy在CODE上查看代码片派生到我的代码片
package com.recommend.utils;

import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationT[......]

Read more

java按单词反转字符串

按单词反转字符串

题目要求:把字符串“I am a student”反转成为“student a am I”,不借助任何库函数。

字符串中单词顺序反转的方法有很多种,我们可以定义一个栈结构,根据栈的特性,先进后出。我们通过依次查找空格(在实际分析单词应用中这只是最简单的情况,单词之间可能直接用标点符号区分,但是使用标点符号并不意味着就是两个单词,西方世界计数方式喜欢使用三位数字加一个逗号形式比如“3,483,123”,虽然我们可以找到“,”但是不能把“3,483,123”作为三个单词来区分,应该看作一个单词。如果我们再考虑中英文等字符问题,区分单词将更加复杂,不过幸运的是,这里我们[......]

Read more

Eclipse 和 MyEclipse 工程描述符–.classpath和.project文件

Eclipse 和 MyEclipse 工程描述符–.classpath和.project文件

1. eclipse工程中.classpath文件含义:
下面是一个.classpath文件内容:

[html] view plaincopy在CODE上查看代码片派生到我的代码片
<?xml version=”1.0″ encoding=”UTF-8″?>
<classpath>
<!– 源码目录 –>
<classpathentry kind=”src” path=”src”/>
<!– 工程引用外部lib目录[......]

Read more

Java 单例模式

Java 单例模式

java中单例模式是一种常见的设计模式。
单例模式有一下特点:
1、单例类只能有一个实例。
2、单例类必须自己自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Printer Spooler,以避免两个打印作业同时输出到打印机中。每台计算机可以有若干通信端口,系统应当集中管理这些通信端口,以避免一个[......]

Read more

Ubuntu安装jdk

在安装之前,系统没有任何jdk软件,也就是说在终端执行

java -version
将会输出如下内容:

root@haiyang-Aspire:~# java -version
程序 ‘java’ 已包含在下列软件包中:
* default-jre
* gcj-4.6-jre-headless
* openjdk-6-jre-headless
* gcj-4.5-jre-headless
* openjdk-7-jre-headless
请尝试:apt-get install <选定的软件包>
先去 Oracle下载Linux下的JDK压缩包,http[......]

Read more