摘要: 考试的时候偷懒,写的map,结果被卡了。。。20分。。我这弱菜、、其实此题很水。。。思路:明显的最短路,就是写hash呗。。表示从来没写过hash,一直用map水的。。头一次写hash,还1A了~嘿嘿,细心点就好PS:我的hash函数不取摸是完美的。View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 #include <string> 5 #include <algorithm> 6 #include <iostream> 7 阅读全文
posted @ 2012-10-05 15:29 proverbs 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 题意:最长公共上升子序列思路:以前都是写的n^3的,今天听说有n^2算法,就看了一下。其实就是n^3的优化以前n^3的方程是:dp[i][j]表示以a串的前i个数字且以b[j]结尾的的最大的LCIS的长度转移是:dp[i][j]=max(dp[i][j],dp[i-1][k]+1) a[i]==b[j]&&b[k]<b[j] 1<=k<jdp[i][j]=max(dp[i][j],dp[i-1][j]) a[i]!=b[j]现在开始优化:第一个方程是n^3的,i,j两层循环是肯定干不掉的,那我们就想办法干掉k的这层循环可以观察发现循环i层的状态是由i-1层转移 阅读全文
posted @ 2012-10-05 10:13 proverbs 阅读(738) 评论(0) 推荐(0) 编辑
摘要: 题意:给出一个N*N的矩阵,要查询任意B*B子矩阵内的元素最大值和最小值之差。思路:没神马思路可言。刚刚做完一道RMQ,正好碰到这道题。。果断二维RMQ。不要听到“二维”就想到二维线段树,应该想到二维树状数组(指变成复杂度)二维RMQ 和就是在一维的基础上及一层循环详见代码~View Code 1 #include <cstdio> 2 #include <cstring> 3 #include <string> 4 #include <cstdlib> 5 #include <iostream> 6 #include <cma 阅读全文
posted @ 2012-10-05 08:35 proverbs 阅读(956) 评论(0) 推荐(0) 编辑