题意:给一个nXm的矩阵,上面有一些数字,从左上角出发,每次只能往右或者往下,把沿途的数字加起来,求到达右下角的最大值是多少。

题解:简单的一个dp,设f[i][j]为到达i行j列的最大值,f[i][j] = max(f[i-1][j],f[i][j-1])+a[i][j],然后用队列刷表法。

#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;
typedef long long ll;
//#define local
#define fi first
#define se second
const int maxn = ; int f[maxn][maxn];
int a[maxn][maxn];
int main()
{
int T;
scanf("%d",&T);
for(int k = ; k <= T; k++) {
int n,m;
scanf("%d%d",&n,&m);
for(int i = ; i < n; i++){
for(int j = ; j < m; j++){
scanf("%d",a[i]+j);
}
}
queue< pair<int,int> > q;
memset(f,0x80,sizeof(f));
q.push(make_pair(,));
f[][] = a[][];
while(q.size()){
pair<int,int> &u = q.front();
int r = u.fi, c = u.se;
if(r<n && f[r+][c]<f[r][c]+a[r+][c]) f[r+][c] = f[r][c]+a[r+][c],q.push(make_pair(r+,c));
if(c<m && f[r][c+]<f[r][c]+a[r][c+]) f[r][c+] = f[r][c]+a[r][c+],q.push(make_pair(r,c+));
q.pop();
}
printf("Case %d: %d\n",k,f[n-][m-]);
}
return ;
}

codeforce Gym 100500H ICPC Quest (简单dp)的更多相关文章

  1. codeforce Gym 100500C ICPC Giveaways(水)

    读懂题意就是水题,按照出现次数对下标排一下序,暴力.. #include<cstdio> #include<algorithm> #include<cstring> ...

  2. codeforces Gym 100500H A. Potion of Immortality 简单DP

    Problem H. ICPC QuestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/a ...

  3. codeforces Gym 100500H H. ICPC Quest 水题

    Problem H. ICPC QuestTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100500/a ...

  4. HDU 1087 简单dp,求递增子序列使和最大

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  5. Codeforces Round #260 (Div. 1) A. Boredom (简单dp)

    题目链接:http://codeforces.com/problemset/problem/455/A 给你n个数,要是其中取一个大小为x的数,那x+1和x-1都不能取了,问你最后取完最大的和是多少. ...

  6. 简单dp --- HDU1248寒冰王座

    题目链接 这道题也是简单dp里面的一种经典类型,递推式就是dp[i] = min(dp[i-150], dp[i-200], dp[i-350]) 代码如下: #include<iostream ...

  7. poj2385 简单DP

    J - 简单dp Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:65536KB     64bit ...

  8. hdu1087 简单DP

    I - 简单dp 例题扩展 Crawling in process... Crawling failed Time Limit:1000MS     Memory Limit:32768KB     ...

  9. poj 1157 LITTLE SHOP_简单dp

    题意:给你n种花,m个盆,花盆是有顺序的,每种花只能插一个花盘i,下一种花的只能插i<j的花盘,现在给出价值,求最大价值 简单dp #include <iostream> #incl ...

随机推荐

  1. day01-HTML(1)

    一. 常用快捷键 Ctrl+c 复制 Ctrl+v 粘贴 Ctrl+x 剪切 Ctrl+a 全选 Ctrl+s 保存 Ctrl+z 撤销一步 Windows+d 返回桌面 Windows+e 我的电脑 ...

  2. shader Category

    Category:是渲染命令的逻辑组,着色器可以多个子着色器,他们需要共同的效果 // Copyright 2014 Google Inc. All rights reserved. // // Li ...

  3. 【SQL】关系数据库概念及数据模型和关系模型

    一.关系数据库 目前关系数据库是数据库应用的主流,许多数据库管理系统的数据模型都是基于关系数据模型开发的. 1)关系数据库:在一个给定的应用领域中,所有实体及实体之间联系的集合构成一个关系数据库. 2 ...

  4. Python学习笔记(数据处理)

    处理文件中数据 (统计分数) 看一下我们的文档里的数据: #-- scores.txt 刘备 23 35 44 47 51 关羽 60 77 68 张飞 97 99 89 91 诸葛亮 100 1.先 ...

  5. SpringBoot2.0 基础案例(09):集成JPA持久层框架,简化数据库操作

    一.JAP框架简介 JPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范.主要是为了简化持久层开发以及整合ORM技术,结束H ...

  6. EF下使用自定义的connectionString避免数据库密码泄露

    在使用EF框架时,缺省情况下数据库访问字串是明码存放在app.config或web.config中的,相当于让数据库裸奔. 实际上EF在创建数据实体时,可以指定连接字串,取代在app.config中读 ...

  7. 利用sizeof,得到二维数组的维度

    #include <iostream> #include <stdlib.h> using namespace std; int main() { ][]; cout < ...

  8. BZOJ 4668: 冷战 并查集&&暴力LCA(雾)

    利用并查集按秩合并,保存每个点合并的时间: 求时间时,就一直跳u=fa[u],并记录路径上时间的最大值,代表最后一次合并的时间 #include<cstdio> #include<i ...

  9. Struts2 拦截器(Interceptor )原理和配置

    http://blog.csdn.net/kingmax54212008/article/details/51777851

  10. 【手撸一个ORM】第八步、查询工具类

    一.实体查询 using MyOrm.Commons; using MyOrm.DbParameters; using MyOrm.Expressions; using MyOrm.Mappers; ...