限界与剪枝求解0/1背包问题
一、 算法思想描述
首先对物体按照价值重量比进行排序。
再从第一个物体开始,对每个物体分两种状态求解:放入与不放入。
在每次求解时都计算该状态可能达到的最优价值,并放入大顶堆中。
当两种状态都求解完后从堆中取出堆顶元素,从该元素所代表的状态中继续进行分支计算。直到深度达到n,问题得到解。
ajax请求时读缓存的问题
当url一样时ajax就会读取缓存中的值 真囧。
百度说,在url中加上一个随机值即可。试了一下用时间,果然OK~
alert(data);
});
还有数学的Math.random()也可以产生随机数……
【备忘】Hibernate生成的model比较Integer要记得用equals啊……
rt
java.lang.String.split()中的|
实验split("|")失效,
百度发现有如下:
关于竖线的问题用 string.split("\\|")解决。
关于星号的问题用 string.split("\\*")解决。
关于斜线的问题用 string.split("\\\\")解决。
关于中括号的问题用 string.split("\\[\\]")解决。
EXT.Window大小随机变化问题解决
晚上突然各个窗体打开大小不正常,最后发现是早上刚加上的stateManager的关系,
窗体读取缓存中的大小显示,囧。
最后百度到解决方案,
定义它的stateful属性为false即不被stateManager管理~
EXT 状态保存
在EXT.onReady中设置
不知道是啥 也许是监听器的意思吧 = =
CookieProvider表示它是根据Cookies有效期限保存的么???
然后在你的类里加上
this.getState = function() {return{tab:this.getActiveTab().id}}
this.applyState = function(state) {this.setActiveTab(state.tab);}
stateEvents表示状态事件(数组)。
这里只用了一个切换tab的。
getState方法中可以写切换tab时执行的内容,比如保存……这里没有写。
applyState貌似可以隐式调用 就不测试了
详细请搜索下EXT 状态保存。
JavaScript 页面打印和预览
1. 页面打印
2. 页面局部打印
在之前的基础上,加上
.noprint{display : none }
</style>
定义,表示class为noprint的代码在打印将不被显示。
之后将不需要打印的内容放入class为print的容器中即可。
3. 通过IE组件 WebBrowser 实现打印
首先获得控件
之后调用相应功能:
WebBrowser1.ExecWB(7,1); // 打印预览
WebBrowser1.ExecWB(8,1); // 打印设置
其他百度来的
Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口
Web.ExecWB(4,1) 保存网页
Web.ExecWB(6,1) 打印
Web.ExecWB(7,1) 打印预览
Web.ExecWB(8,1) 打印页面设置
Web.ExecWB(10,1) 查看页面属性
Web.ExecWB(15,1) 好像是撤销,有待确认
Web.ExecWB(17,1) 全选
Web.ExecWB(22,1) 刷新
Web.ExecWB(45,1) 关闭窗体无提示
不打印的方法同2。
4. 还是JS,这次是选中部分打印。
百度来的:
if (oper < 10){
bdhtml=window.document.body.innerHTML;//获取当前页的html代码
sprnstr="<!--startprint"+oper+"-->";//设置打印开始区域
eprnstr="<!--endprint"+oper+"-->";//设置打印结束区域
prnhtml=bdhtml.substring(bdhtml.indexOf(sprnstr)+18); //从开始代码向后取html
prnhtml=prnhtml.substring(0,prnhtml.indexOf(eprnstr));//从结束代码向前取html
window.document.body.innerHTML=prnhtml;
window.print();
window.document.body.innerHTML=bdhtml;
} else {
window.print();
}
}
而要打印的内容放在<!--startprint1-->和<!--endprint1-->之间即可。调用preview(1),
这样可以设定多个部分打印不同内容,oper值自己根据需要指定。
Hibernate的set排序
在对应的hbm.xml文件中所需要修改的set标签加上order-by属性即可~
eg.
<key>
<column name="classID" not-null="true" unique="true" />
</key>
<one-to-many class="org.banana.mms.model.Course" />
</set>
当然,order-by里用的是中间表的字段~