上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 20 下一页

2013年8月5日

hdu 2825(ac自动机+状态压缩dp)

摘要: 题意:容易理解... 分析:在做这道题之前我做了hdu 4057,都是同一种类型的题,因为题中给的模式串的个数最多只能为10个,所以我们就很容易想到用状态压缩来做,但是开始的时候我的代码超时了dp时我们由dp[i][j][k]枚举其后接的字符转移到dp[i+1],在枚举前判断下是否有dp[i][j] 阅读全文

posted @ 2013-08-05 12:10 后端bug开发工程师 阅读(446) 评论(0) 推荐(0) 编辑

hdu 4057(ac自动机+状态压缩dp)

摘要: 题意:容易理解... 分析:题目中给的模式串的个数最多为10个,于是想到用状态压缩dp来做,它的状态范围为1-2^9,所以最大为2^10-1,那我们可以用:dp[i][j][k]表示长度为i,在trie树上的状态为j,压缩后的状态为k时的情况,知道怎么压缩之后这道题就是一道简单的ac自动机+压缩dp 阅读全文

posted @ 2013-08-05 11:59 后端bug开发工程师 阅读(292) 评论(0) 推荐(0) 编辑

hdu 3341(ac自动机+状态压缩)

摘要: 题意:容易理解... 思路:首先一开始容易想到要用到dp,开设一个dp[41][41][41][41][501]的数组来解决,但是明显内存已经超出范围了,于是就想如何减少内存呢?只要知道A、T、C、G其中三个的个数,则另一个也能算出,于是空间可以缩小到:41*41*41*500,但是还是不行啊!想了 阅读全文

posted @ 2013-08-05 11:43 后端bug开发工程师 阅读(653) 评论(0) 推荐(0) 编辑

2013年7月29日

一些模拟题

摘要: 题目:1835,2623,2271,2996,2706,1676,1472,1027,3371。 阅读全文

posted @ 2013-07-29 15:25 后端bug开发工程师 阅读(158) 评论(0) 推荐(0) 编辑

2013年7月28日

hdu 2059(dp)

摘要: 题意:容易理解...思路:dp[i]表示乌龟到达第i个充电站时最少花费时间到第 i 个充电站后,从起点开始遍历到第 i-1 个充电站,得到最少花费时间状态转移方程:dp[i]=min(dp[j]+time(j-->i)); 1#includeint main(){ int i,j,n; double l,c,t,vr,v1,v2,temp,len,min; double a[105],dp[105]; while(scanf("%lf",&l)!=EOF) { scanf("%d%lf%lf",&n,&c,&t); 阅读全文

posted @ 2013-07-28 22:40 后端bug开发工程师 阅读(270) 评论(0) 推荐(0) 编辑

hdu 1421(dp)

摘要: 题意:容易理解...思路:假设开始算出搬了k次的最小疲劳度,然后推出搬k+1次最小的疲劳度。代码实现:#include#include#include#includeusing namespace std;int min1[2001],dp[2001];int main(){ int n,k,i,j,a[2001],b[2001],temp,res; while(scanf("%d%d",&n,&k)!=EOF) { for(i=1;i=2*(i+1)) min1[j]=temp; if(j==... 阅读全文

posted @ 2013-07-28 22:22 后端bug开发工程师 阅读(204) 评论(0) 推荐(0) 编辑

hdu 2845(dp基础题)

摘要: 题意:容易理解。分析:以后碰到这种类型的题,就要考虑把矩阵先按行来处理,再按列处理。先算出每行能够能够得到的最大值,然后按列处理即可。代码实现:#include#includeint n,m;int a[200005],dp[200005][2],b[200005];int max(int x,int y){ return x>y?x:y;}int main(){ int i,j,res; while(scanf("%d%d",&n,&m)!=EOF) { res=-1000000; dp[0][0]=0;dp[0][1]=0; ... 阅读全文

posted @ 2013-07-28 19:34 后端bug开发工程师 阅读(396) 评论(0) 推荐(0) 编辑

hdu 2870(dp求最大子矩阵)

摘要: 题意:让你求的是由同一字母组成的最大子矩阵,w可以变成a或者b,x可以变成b或者c,y可以变成a或者c,z可以变成a或者b或者c。分析:这是hdu 1506、hdu 1505的加强版,具体的分析看我的博客:http://www.cnblogs.com/jiangjing/p/3221423.html代码实现:#include#include#include#includeusing namespace std;char str[8]={'a','b','c','w','x','y','z&# 阅读全文

posted @ 2013-07-28 19:23 后端bug开发工程师 阅读(315) 评论(0) 推荐(0) 编辑

hdu 1505(dp求最大子矩阵)

摘要: 题意:就是让你求出全由F组成的最大子矩阵。分析:这是hdu 1506的加强版,只不过这道题变成了2维的,那我们就一行一行的来。具体的分析见1506的博客:http://www.cnblogs.com/jiangjing/p/3221423.html然后做了这题之后,就可以做下这道题的加强版了:hdu 2870代码实现:#include#includeusing namespace std;int n,m;char map[1005][1005];int a[1005][1005],l[1005],r[1005];int main(){ int T,i,j,max,t; scanf(... 阅读全文

posted @ 2013-07-28 19:17 后端bug开发工程师 阅读(1653) 评论(0) 推荐(0) 编辑

hdu 1506(dp求最大子矩阵)

摘要: 题意:容易理解...分析:对于每个单位矩阵,我们先求出连续比它高的最左边的下标假设为l,然后求出比它高的最右边的下标假设为r,然后矩阵的面积就是(r-l+1)*1;我们从左到右扫一遍,求出每个点的l保存在l[]数组里,然后从右到左扫一遍,求出每个点的r保存在r[]数组里,最后可以求出最大的矩阵了。然后做完这个题可以做下这道题的加强版--hdu 1505 我的博客链接:http://www.cnblogs.com/jiangjing/p/3221442.html代码实现:#include#include__int64 a[100005],dp[100005],l[100005],r[100005 阅读全文

posted @ 2013-07-28 19:00 后端bug开发工程师 阅读(3074) 评论(0) 推荐(1) 编辑

上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 20 下一页

导航