动态规划
文章平均质量分 63
chenlang888
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
沙子合并(又是区间动态规划)
#include using namespace std; long long a[305],d[305][305],s[305][305]; int main() { int n,i,j,k,r; while(cin>>n) { for(i=1;i<=n;i++) cin>>a[i]; for(i=1;i<=n;i++) { d[i][i]=原创 2012-08-14 20:16:48 · 1139 阅读 · 0 评论 -
最小矩阵连乘(区间动态规划)
#include using namespace std; #define maxint 2147483647 int main() { int i,j,m,k,n,t,r,p[105],c[105][105]; while(cin>>n) { for(i=0;i<=n;i++) cin>>p[i]; for(j=1;j<=n;j++) c[j][j]=0; for(r原创 2012-08-14 20:08:20 · 422 阅读 · 0 评论 -
RMQ(Range Minimum/Maximum Query)算法(nyist119)
RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j当然,该问题也可以用线段树(也叫区间树)解决,算法复杂度为:O(N)~O(logN),这里我们暂不介绍。#include using namespace std; #include #include int n,maxsum[10000原创 2012-08-28 21:22:32 · 525 阅读 · 0 评论 -
http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=1072
#include #include #include using namespace std; int a[1050][1050]; char b[1050],c[1050]; int main(int argc, char *argv[]) { int i,j,k,m,n,r; while(cin>>&b[1]>>&c[1]) { m=strlen(&b[1]),n=strlen原创 2013-07-17 12:51:13 · 3183 阅读 · 1 评论 -
[NOI1995]石子合并
在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分。 试设计出1个算法,计算出将N堆石子合并成1堆的最小得分和最大得分./* 圆的话就用2*n-1,即只有n种情况; */ #include using namespace std; #include #include const int INF=原创 2013-08-15 11:25:48 · 1103 阅读 · 0 评论 -
NOIP 2008 传纸条
#include #include #include using namespace std; int a[51][51],d[105][51][51]; int main(int argc, char *argv[]) { int n,m,i,j,k; cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) cin>>a[i][j]; me原创 2013-08-15 09:56:41 · 1512 阅读 · 0 评论
分享