- 动态规划 poj1050
xuezhongfenfei
这道题是在求一维数组的最大子串的问题延伸出来的,说实话,看完这个题,我还是对一维数组很熟悉,对这个无从下手,因为心里老是想着这个要怎么优化,怎样节约时间等等,结果想到的方法就立刻被自己给推翻了,后来终于看了别人的思路,我有点无语了,其实就是在一维的基础上来点暴力手段而已,而我却没有想到。。。看来以后做题要不能只想着优化了,而是在考虑题目给的数据量是依情况做题,啊啊,亏着我还想了几天的!#inclu
- POJ1050 To the Max (最大子段和,最大子矩阵)
hermito
ACM
题目地址:http://poj.org/problem?id=1050描述:Givenatwo-dimensionalarrayofpositiveandnegativeintegers,asub-rectangleisanycontiguoussub-arrayofsize1*1orgreaterlocatedwithinthewholearray.Thesumofarectangleisthe
- POJ1050 To the Max - 贪心[最大子矩阵和]
dmqqndlx85675
POJ1050TotheMax传送门题意:给定一个\(n*n\)的带权矩阵,求一个矩阵,使矩阵内权值之和最大,输出这个矩阵的权值和。$n\leq100$思路:可以利用前缀和优化,然后\(O(n^4)\)枚举矩阵的左上角和右下角,求出最大二维前缀和。这样的枚举方案比较难以再次优化,我们考虑矩阵权值和的实质:等价于我们将矩阵每列的权值加起来,形成一个新数列,然后对这个数列求和,而最大的矩阵权值和,相当
- POJ动态规划20题,一句话题解~
何时成为GT
水dp
蒟蒻不会DP,找了20道入门题来刷,分享下转移过程,发现做dp最笨的方式就是画状态矩阵找转移方程,然后一些基本的经典DP要记住,剩下就是他们的变形了,背包又忘得差不多了,感觉下次得找个时间补一下。。。POJ1050非常经典,用捆绑法将二维问题转化到一维的状态来求解。poj1050√最大子矩阵和:捆绑子矩阵转化为最大连续子段和问题poj1088√四方向记忆化搜索dp[i][j]=max(dp[i-1
- poj 3494 dp(最大全1子矩阵)
dumeichen
动态规划——杂数据结构
题意:给定一个n*m大小的0-1矩阵,求所有元素都为1的最大子矩阵。思路:把2维转化为一维(这一点有点像poj1050求最大子矩阵),枚举每一行。dp[i][j]的值表示第(i,j)个位置作为底,它上面的(包括自己)的连续1的个数。然后通过栈的单调性求每行的“最大值”(每行的情况如同poj2559)。可以用滚动数组优化。#include#include#definemin(a,b)((a)(b)?
- poj1964最大子矩阵 (单调栈加枚举)
weixin_30730053
题目传送门题目大意:一个矩阵中,求F组成的矩阵的面积,(答案乘以三)。思路:n如果是小于100的,就可以通过前缀和,然后三重循环暴力找,和poj1050很像,但由于是1000,就不可以了,时间复杂度太高。这道题的类别是单调栈,仔细想一下,发现其实就是先统计每一行网上有多少个长方形,然后再枚举每一行,算出最大的maxx,相当于poj2559的加强版。代码有很多细节要注意,最大的坑是,输入的图,两个符
- 【OJ】POJ1050 (前缀和,动态规划)
bitosky
OJ算法/数据结构
题目链接Language:DefaultTotheMaxTimeLimit:1000MSMemoryLimit:10000KTotalSubmissions:52677Accepted:27869DescriptionGivenatwo-dimensionalarrayofpositiveandnegativeintegers,asub-rectangleisanycontiguoussub-ar
- POJ动态规划题目列表
咿呀而已
动态规划题目目录动态规划
POJ1050非常经典,用捆绑法将二维问题转化到一维的状态来求解。poj1050√最大子矩阵和:捆绑子矩阵转化为最大连续子段和问题poj1088√四方向记忆化搜索dp[i][j]=max(dp[i-1][j]...)+1遍历所有点,注意处理边界poj1163√数塔dp[i][j]=max(dp[i-1][j],dp[i-1][j-1])+a[i][j]poj1159√dp[s][e]=min(dp
- POJ1050 简单的递推~
u011757339
算法pojdp递推
POJ1050题意就是求N*N的矩阵中最大子矩阵和,之前做过一道题COGS997射命丸文题目链接和这道题比较类似,区别是要求的最大子矩阵和大小是给定的,当时用的是递推求解,代码如下:#include#include#includeusingnamespacestd;intnum[1000+10][1000+10];intsum[1000+10][1000+10];intn,m,r,c;intmai
- POJ 1050 Solution Report
kangCao
解题报告题目描述链接:POJ1050给定一个二维数组,求这个二维数组的子数组中所有元素相加和最大的那个子数组,并且输出这个子数组的和输入第一行输入一个整数N代表二维数组的边长第二行输入N*N个数代表数组的元素,以行优先的方式来输入输出一个整数,代表最大子数组的和,一个输出独占一行解题思路一开始拿到题的思路是构建一个四位数组dp[i][j][k][l]来存储以a[i][j]为左上角,以a[k][l]
- 20170902_poj1050
zhaohaoying
////main.cpp//poj1050////CreatedbyHaoyingZhaoon17/9/2.8:51//Copyright©2017年HaoyingZhao.Allrightsreserved.//#include#includeusingnamespacestd;inta[101][101];intt[101];intmain(intargc,constchar*argv[]){
- 【2019.9.30】Za
委屈的咸鱼鱼鱼鱼
==老年选手康复训练poj1050==我是个瘟桑吧最大子段和我居然还得重新撕烤一遍dp[0]=0;for(inti=1;ik;intmid=l+r>>1;if(t[ls].k>1)+1,r,t[ls].k);}voidupd(into,intl,intr,intx,doublek){if(l==r){t[o]=(node){1,k};return;}intmid=l+r>>1;if(x<=mid)
- POJ1050 To the Max
Yoc Lu
九度OJ
POJ1050TotheMax假设最大子矩阵的结果为从第r行到k行、从第i列到j列的子矩阵,如下所示(ari表示a[r][i],假设数组下标从1开始):|a11……a1i……a1j……a1n||a21……a2i……a2j……a2n||....||....||ar1……ari……arj……arn||....||....||ak1……aki……akj……akn||....||an1……ani……anj
- poj1050 动态规划
aidway
dppoj
题意:给定N*N的矩阵,求最大子矩阵和算法:动态规划。枚举子矩阵a[i,j],表示从第i行到第j行组成的矩阵,将其每列相加,即可转换为求一维数组的最大连续子段和问题。设dp[k]表示以元素k结束的最大子段和,那么,dp[k]=max{dp[k-1]+a[k],a[k]}#include
#include
usingnamespacestd;
constintSIZE=110;
intINF=-1
- poj1050
Summer__show_
DescriptionGivenatwo-dimensionalarrayofpositiveandnegativeintegers,asub-rectangleisanycontiguoussub-arrayofsize1*1orgreaterlocatedwithinthewholearray.Thesumofarectangleisthesumofalltheelementsinthatre
- poj1050(最大子矩阵和)
fengsigaoju
首先复习一下最大字段和:一般有两种写法intdp(intsum[105],intk)
{
inti,b,max;
max=sum[0];
b=sum[0];
for(i=1;imax)
max=b;
}
returnmax;
}还有是用数组保存的方法,一般是用于需要保存到中间某一个点的最大字段和,比如不相交两段字段和l[0]=num[0];
for(i=1;i0)
l[i]=l[i-1]+num[
- cf#22-B-Bargaining Table-枚举+贪心+dp(最大连续区间和)
viphong
http://codeforces.com/problemset/problem/22/Bcf#22-B此题与POJ1050一样,求0-1矩阵中的最大一块子矩阵,1050中是求和最大,本题要求矩阵所有元素为0,都是n^2枚举子矩阵的上下边界,把二维子矩阵逐行累加存到一位数组表示该列之和,然后用o(n)扫描,求连续的最大的零个数#include
#include
#include
#include
- poj1050 to the max
poj
原文地址:http://blog.sina.com.cn/s/blog_606e17490100f78h.html
题意: 很明了,就是求最大子矩阵和。 现在讲一下最大子矩阵和的求法。 用2 维数组a[1 : m][1 : n]表示给定的m行n列的整数矩阵。子数组a[i1
- poj1050 To the Max
poj
/*
题目:
求最大子矩阵的和
分析:
我的做法:
0 -2 -7 0
9 2 -6 2
-4 1 -4 1
-1 8 0 -2
我们可以按每一行计算从j开始到k结束的该段和,用dp[i][j][k]
表示第i行的元素从下标j开始到k结束的和,把每一行的都求出,
从而转化为求每一列的最大子序和,本
- poj1050(nyoj104 zoj1074)dp问题
poj
To the Max
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 39913
Accepted: 21099
Description Given a two-dimensional array of positive and negative integers,
- UVA 10827 Maximum sum on a torus 最大矩阵和
uva
题目链接:UVA - 10827
题意描述:给出一个n*n矩阵,把第一行和最后一行粘一起,把第一列和最后一列粘一起,形成一个环面,求出这个环面中最大的矩阵和。
算法分析:首先复制n*n这个矩阵,形成由4个这样小矩阵组成的大矩阵,然后在这个大矩阵里找出最大矩阵和,一看貌似和poj1050这道题有些相似,但是这道题数据大一些,O(150^4)应该会超时吧。我们可以这样想,先枚举这个最大和矩阵的左上
- POJ1050:To the max
poj
poj1050:http://poj.org/problem?id=1050
* maximum-subarray 问题的升级版本~
本题同样是采用DP思想来做,同时有个小技巧处理:就是把二维数组看做一维数组。怎么去看呢,我们可以吧具有同样列号的数捆绑到一起,比如 a[1][1], a[2][1], a[3][1]....。我们可以吧他们都看做 'a[1]'。因为最终的解是矩阵行数n中的任意一
- poj1050
poj
题意:给出一个矩阵(100×100)求一个子矩阵,使得子矩阵中各个元素的和最大。
分析:类似最大子段和,我们可以将这个矩阵一些列的集合,如果最优解(最大子矩阵)左起第i列,右止于第j列,上下边界先不管。那么我们相当于把这些列的对应位加和,成为一列。并对改列求最大子段和即可。这样我们只需要枚举所有的i和j,然后合并列,然后求最大子段和,取最大即可。 View Code
#i
- POJ1050
poj
To the Max
Time Limit: 1000MS
Memory Limit: 10000K
Total Submissions: 32838
Accepted: 17175
Description Given a two-dimensional array of positive and
- POJ 1050 解题报告
thestoryofsnow
这道题有O(N^3)的解法,具体见:http://www.geeksforgeeks.org/dynamic-programming-set-27-max-sum-rectangle-in-a-2d-matrix/Accepted288K16MSC++1513B/*
ID:thestor1
LANG:C++
TASK:poj1050
*/
#include
#include
#include
#i
- poj1050 最大子矩阵和
u013573047
http://poj.org/problem?id=1050DescriptionGivenatwo-dimensionalarrayofpositiveandnegativeintegers,asub-rectangleisanycontiguoussub-arrayofsize1*1orgreaterlocatedwithinthewholearray.Thesumofarectangleis
- poj 3494 dp(最大全1子矩阵)
dumeichen
题意:给定一个n*m大小的0-1矩阵,求所有元素都为1的最大子矩阵。思路:把2维转化为一维(这一点有点像poj1050求最大子矩阵),枚举每一行。dp[i][j]的值表示第(i,j)个位置作为底,它上面的(包括自己)的连续1的个数。然后通过栈的单调性求每行的“最大值”(每行的情况如同poj2559)。可以用滚动数组优化。#include
#include
#definemin(a,b)((a)(b
- POJ1050
u013570474
又了解了一种新思维,达拉拉~~~~~~我们都会算最大和连续子序列;这道题是把多维数组压缩,暴力算;因为maxs每次都是与sum比较得来,所以上次的最大和会保存到比maxs大的和产生时#include#include#include#definemaxn105usingnamespacestd;intmap[maxn][maxn];intn,maxs=0;voidfind(intb){ intsu
- 【dp 最大子矩形】poj1050
hetangl2
dppoj
TotheMaxDescriptionGivenatwo-dimensionalarrayofpositiveandnegativeintegers,asub-rectangleisanycontiguoussub-arrayofsize1*1orgreaterlocatedwithinthewholearray.Thesumofarectangleisthesumofalltheelements
- HDU1081 && POJ1050(求最大子矩阵和)
immiao
#include
#include
#include
usingnamespacestd;
intdp[305];
intn;
intgetmax()
{
inti;
intmaxn=-999999999;
intdpp[305];
dpp[0]=dp[0];
for(i=1;i0)
dpp[i]=dp[i]+dpp[i-1];
else
dpp[i]=dp[i];
if(dpp[i]>max
- 深入浅出Java Annotation(元注解和自定义注解)
Josh_Persistence
Java Annotation元注解自定义注解
一、基本概述
Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。
更通俗的意思是为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且是供指定的工具或
- mysql优化特定类型的查询
annan211
java工作mysql
本节所介绍的查询优化的技巧都是和特定版本相关的,所以对于未来mysql的版本未必适用。
1 优化count查询
对于count这个函数的网上的大部分资料都是错误的或者是理解的都是一知半解的。在做优化之前我们先来看看
真正的count()函数的作用到底是什么。
count()是一个特殊的函数,有两种非常不同的作用,他可以统计某个列值的数量,也可以统计行数。
在统
- MAC下安装多版本JDK和切换几种方式
棋子chessman
jdk
环境:
MAC AIR,OS X 10.10,64位
历史:
过去 Mac 上的 Java 都是由 Apple 自己提供,只支持到 Java 6,并且OS X 10.7 开始系统并不自带(而是可选安装)(原自带的是1.6)。
后来 Apple 加入 OpenJDK 继续支持 Java 6,而 Java 7 将由 Oracle 负责提供。
在终端中输入jav
- javaScript (1)
Array_06
JavaScriptjava浏览器
JavaScript
1、运算符
运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算术运算符(+,-,*,/,++,--,%)、比较运算符(>,<,<=,>=,==,===,!=,!==)、逻辑运算符(||,&&,!)、条件运算(?:)、位
- 国内顶级代码分享网站
袁潇含
javajdkoracle.netPHP
现在国内很多开源网站感觉都是为了利益而做的
当然利益是肯定的,否则谁也不会免费的去做网站
&
- Elasticsearch、MongoDB和Hadoop比较
随意而生
mongodbhadoop搜索引擎
IT界在过去几年中出现了一个有趣的现象。很多新的技术出现并立即拥抱了“大数据”。稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化。假如你有诸如Elasticsearch或者Solr这样的搜索引擎,它们存储着JSON文档,MongoDB存着JSON文档,或者一堆JSON文档存放在一个Hadoop集群的HDFS中。你可以使用这三种配
- mac os 系统科研软件总结
张亚雄
mac os
1.1 Microsoft Office for Mac 2011
大客户版,自行搜索。
1.2 Latex (MacTex):
系统环境:https://tug.org/mactex/
&nb
- Maven实战(四)生命周期
AdyZhang
maven
1. 三套生命周期 Maven拥有三套相互独立的生命周期,它们分别为clean,default和site。 每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。 以clean生命周期为例,它包含的阶段有pre-clean, clean 和 post
- Linux下Jenkins迁移
aijuans
Jenkins
1. 将Jenkins程序目录copy过去 源程序在/export/data/tomcatRoot/ofctest-jenkins.jd.com下面 tar -cvzf jenkins.tar.gz ofctest-jenkins.jd.com &
- request.getInputStream()只能获取一次的问题
ayaoxinchao
requestInputstream
问题:在使用HTTP协议实现应用间接口通信时,服务端读取客户端请求过来的数据,会用到request.getInputStream(),第一次读取的时候可以读取到数据,但是接下来的读取操作都读取不到数据
原因: 1. 一个InputStream对象在被读取完成后,将无法被再次读取,始终返回-1; 2. InputStream并没有实现reset方法(可以重
- 数据库SQL优化大总结之 百万级数据库优化方案
BigBird2012
SQL优化
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。
这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where
- jsonObject的使用
bijian1013
javajson
在项目中难免会用java处理json格式的数据,因此封装了一个JSONUtil工具类。
JSONUtil.java
package com.bijian.json.study;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
- [Zookeeper学习笔记之六]Zookeeper源代码分析之Zookeeper.WatchRegistration
bit1129
zookeeper
Zookeeper类是Zookeeper提供给用户访问Zookeeper service的主要API,它包含了如下几个内部类
首先分析它的内部类,从WatchRegistration开始,为指定的znode path注册一个Watcher,
/**
* Register a watcher for a particular p
- 【Scala十三】Scala核心七:部分应用函数
bit1129
scala
何为部分应用函数?
Partially applied function: A function that’s used in an expression and that misses some of its arguments.For instance, if function f has type Int => Int => Int, then f and f(1) are p
- Tomcat Error listenerStart 终极大法
ronin47
tomcat
Tomcat报的错太含糊了,什么错都没报出来,只提示了Error listenerStart。为了调试,我们要获得更详细的日志。可以在WEB-INF/classes目录下新建一个文件叫logging.properties,内容如下
Java代码
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHa
- 不用加减符号实现加减法
BrokenDreams
实现
今天有群友发了一个问题,要求不用加减符号(包括负号)来实现加减法。
分析一下,先看最简单的情况,假设1+1,按二进制算的话结果是10,可以看到从右往左的第一位变为0,第二位由于进位变为1。
 
- 读《研磨设计模式》-代码笔记-状态模式-State
bylijinnan
java设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类
状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况
把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化
如果在
- CUDA程序block和thread超出硬件允许值时的异常
cherishLC
CUDA
调用CUDA的核函数时指定block 和 thread大小,该大小可以是dim3类型的(三维数组),只用一维时可以是usigned int型的。
以下程序验证了当block或thread大小超出硬件允许值时会产生异常!!!GPU根本不会执行运算!!!
所以验证结果的正确性很重要!!!
在VS中创建CUDA项目会有一个模板,里面有更详细的状态验证。
以下程序在K5000GPU上跑的。
- 诡异的超长时间GC问题定位
chenchao051
jvmcmsGChbaseswap
HBase的GC策略采用PawNew+CMS, 这是大众化的配置,ParNew经常会出现停顿时间特别长的情况,有时候甚至长到令人发指的地步,例如请看如下日志:
2012-10-17T05:54:54.293+0800: 739594.224: [GC 739606.508: [ParNew: 996800K->110720K(996800K), 178.8826900 secs] 3700
- maven环境快速搭建
daizj
安装mavne环境配置
一 下载maven
安装maven之前,要先安装jdk及配置JAVA_HOME环境变量。这个安装和配置java环境不用多说。
maven下载地址:http://maven.apache.org/download.html,目前最新的是这个apache-maven-3.2.5-bin.zip,然后解压在任意位置,最好地址中不要带中文字符,这个做java 的都知道,地址中出现中文会出现很多
- PHP网站安全,避免PHP网站受到攻击的方法
dcj3sjt126com
PHP
对于PHP网站安全主要存在这样几种攻击方式:1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、SQL注入攻击(SQL injection)6、跨网站请求伪造攻击(Cross Site Request Forgerie
- yii中给CGridView设置默认的排序根据时间倒序的方法
dcj3sjt126com
GridView
public function searchWithRelated() {
$criteria = new CDbCriteria;
$criteria->together = true; //without th
- Java集合对象和数组对象的转换
dyy_gusi
java集合
在开发中,我们经常需要将集合对象(List,Set)转换为数组对象,或者将数组对象转换为集合对象。Java提供了相互转换的工具,但是我们使用的时候需要注意,不能乱用滥用。
1、数组对象转换为集合对象
最暴力的方式是new一个集合对象,然后遍历数组,依次将数组中的元素放入到新的集合中,但是这样做显然过
- nginx同一主机部署多个应用
geeksun
nginx
近日有一需求,需要在一台主机上用nginx部署2个php应用,分别是wordpress和wiki,探索了半天,终于部署好了,下面把过程记录下来。
1. 在nginx下创建vhosts目录,用以放置vhost文件。
mkdir vhosts
2. 修改nginx.conf的配置, 在http节点增加下面内容设置,用来包含vhosts里的配置文件
#
- ubuntu添加admin权限的用户账号
hongtoushizi
ubuntuuseradd
ubuntu创建账号的方式通常用到两种:useradd 和adduser . 本人尝试了useradd方法,步骤如下:
1:useradd
使用useradd时,如果后面不加任何参数的话,如:sudo useradd sysadm 创建出来的用户将是默认的三无用户:无home directory ,无密码,无系统shell。
顾应该如下操作:
- 第五章 常用Lua开发库2-JSON库、编码转换、字符串处理
jinnianshilongnian
nginxlua
JSON库
在进行数据传输时JSON格式目前应用广泛,因此从Lua对象与JSON字符串之间相互转换是一个非常常见的功能;目前Lua也有几个JSON库,本人用过cjson、dkjson。其中cjson的语法严格(比如unicode \u0020\u7eaf),要求符合规范否则会解析失败(如\u002),而dkjson相对宽松,当然也可以通过修改cjson的源码来完成
- Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
yaerfeng1989
timerquartz定时器
原创整理不易,转载请注明出处:Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
代码下载地址:http://www.zuidaima.com/share/1772648445103104.htm
有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz。
1.Java Timer定时
首先继承jav
- Linux下df与du两个命令的差别?
pda158
linux
一、df显示文件系统的使用情况,与du比較,就是更全盘化。 最经常使用的就是 df -T,显示文件系统的使用情况并显示文件系统的类型。 举比例如以下: [root@localhost ~]# df -T Filesystem Type &n
- [转]SQLite的工具类 ---- 通过反射把Cursor封装到VO对象
ctfzh
VOandroidsqlite反射Cursor
在写DAO层时,觉得从Cursor里一个一个的取出字段值再装到VO(值对象)里太麻烦了,就写了一个工具类,用到了反射,可以把查询记录的值装到对应的VO里,也可以生成该VO的List。
使用时需要注意:
考虑到Android的性能问题,VO没有使用Setter和Getter,而是直接用public的属性。
表中的字段名需要和VO的属性名一样,要是不一样就得在查询的SQL中
- 该学习笔记用到的Employee表
vipbooks
oraclesql工作
这是我在学习Oracle是用到的Employee表,在该笔记中用到的就是这张表,大家可以用它来学习和练习。
drop table Employee;
-- 员工信息表
create table Employee(
-- 员工编号
EmpNo number(3) primary key,
-- 姓