题目大意:

一个m*n的矩阵,里面有两种矿物质铀和镭,现在要把铀和镭运送到指定位置。北边是炼镭厂,西边是了炼铀厂。
现在要建立传送带,传送带有两种,一种是从东到西,另一种是从南到北,传送带不能交叉,并且运送中途不能中断。现在你要计算出最多能采集多少矿。
输入数据:第一个m*n的矩阵代表铀的矿物质分布, 第二个矩阵代表镭的矿物质分布。
题目分析:
记忆化搜索写起来比较方便点,把数据进行一下简单的预处理就行了。
 
 
 
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#include<map>
using namespace std;
typedef long long LL;
const int INF = 1e9+;
const int MAXN = ;
int dp[MAXN][MAXN];
int Ur[MAXN][MAXN], Ra[MAXN][MAXN]; int DFS(int m,int n)
{
if(dp[m][n] != -)
return dp[m][n];
if(m == || n == )
return dp[m][n] = ; dp[m][n] = max(dp[m][n], Ra[m][n] + DFS(m,n-) );///选取镭
dp[m][n] = max(dp[m][n], Ur[m][n] + DFS(m-,n) );///选取铀
return dp[m][n];
} int main()
{
int T, n, m, a, cas = ;
scanf("%d", &T);
while(T --)
{
scanf("%d %d", &m, &n); memset(Ur, , sizeof(Ur));
memset(Ra, , sizeof(Ra));
memset(dp, -, sizeof(dp));
for(int i=; i<=m; i++)
for(int j=; j<=n; j++)
{
scanf("%d", &a);
Ur[i][j] = Ur[i][j-] + a;
} for(int i=; i<=m; i++)
for(int j=; j<=n; j++)
{
scanf("%d", &a);
Ra[i][j] = Ra[i-][j] + a;
}
printf("Case %d: %d\n", cas ++, DFS(m,n)); } return ;
}

Light OJ 1036 - A Refining Company的更多相关文章

  1. 1036 - A Refining Company

    1036 - A Refining Company   PDF (English) Statistics Forum Time Limit: 3 second(s) Memory Limit: 32 ...

  2. lightoj 1036 - A Refining Company(简单dp)

    题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1036 题解:设dp[i][j]表示处理到(i,j)点时的最大值然后转移显然是 ...

  3. A Refining Company LightOJ - 1036

    A Refining Company LightOJ - 1036 描述好长啊... 题意:在m*n的矩阵上,每一格摆一个向上或者向左的传送带(不能同时摆,只能摆一个).同时,每一格有两种物资Uran ...

  4. Light OJ 1114 Easily Readable 字典树

    题目来源:Light OJ 1114 Easily Readable 题意:求一个句子有多少种组成方案 仅仅要满足每一个单词的首尾字符一样 中间顺序能够变化 思路:每一个单词除了首尾 中间的字符排序 ...

  5. Light OJ 1429 Assassin`s Creed (II) BFS+缩点+最小路径覆盖

    题目来源:Light OJ 1429 Assassin`s Creed (II) 题意:最少几个人走全然图 能够反复走 有向图 思路:假设是DAG图而且每一个点不能反复走 那么就是裸的最小路径覆盖 如 ...

  6. Light OJ 1406 Assassin`s Creed 减少国家DP+支撑点甚至通缩+最小路径覆盖

    标题来源:problem=1406">Light OJ 1406 Assassin`s Creed 意甲冠军:向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路: ...

  7. Light OJ 1316 A Wedding Party 最短路+状态压缩DP

    题目来源:Light OJ 1316 1316 - A Wedding Party 题意:和HDU 4284 差点儿相同 有一些商店 从起点到终点在走过尽量多商店的情况下求最短路 思路:首先预处理每两 ...

  8. light oj 1007 Mathematically Hard (欧拉函数)

    题目地址:light oj 1007 第一发欧拉函数. 欧拉函数重要性质: 设a为N的质因数.若(N % a == 0 && (N / a) % a == 0) 则有E(N)=E(N ...

  9. Light OJ 1406 Assassin`s Creed 状态压缩DP+强连通缩点+最小路径覆盖

    题目来源:Light OJ 1406 Assassin`s Creed 题意:有向图 派出最少的人经过全部的城市 而且每一个人不能走别人走过的地方 思路:最少的的人能够走全然图 明显是最小路径覆盖问题 ...

随机推荐

  1. (转)Java爬虫,信息抓取的实现

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/23272657 今天公司有个需求,需要做一些指定网站查询后的数据的抓取,于是花了点 ...

  2. jvm - 内存结构以其解析

    可以将jvm粗略分为以下部分: Heap Memory:存储java对象. Non-Heap Memory:存储加载的class文件,以及其他meta-data信息. Other:存储java代码,j ...

  3. SQLSERVER2008 显示列信息,包含扩展属性

    select b.name as table_name,a.name as column_name,t.name type_name        ,a.max_length ,a.precision ...

  4. 完全步卸载oracle11g步骤

    完全 步 卸载oracle11g骤: . 开始->设置->控制面板->管理工具->服务 停止所有Oracle服务.  . 开始->程序->Oracle - OraH ...

  5. 转:Android软件开发之PreferenceActivity中的组件

    本文转于 “雨松MOMO的程序世界” 博客,请务必保留此出处http://xys289187120.blog.51cto.com/3361352/656784 1.PreferenceActivity ...

  6. kettle不能正常自动获取字段

     Unable to close prepared statement after determining SQL layoutYou have an error in your SQL syntax ...

  7. Fedora 21 中添加及更新源的命令

    原文: Fedora 21 中添加及更新源的命令 fedora的软件源信息文件(*.repo)都是放在 /etc/yum.repos.d 目录下的.可以通过# ls -l /etc/yum.repos ...

  8. 弹出对话框 UIAlertController

    双选 //实例化UIAlertController var av=UIAlertController(title: "

  9. php 执行linux 命令函数

    php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数. 在很多时候利用php的exec,system等函数调用系统命 ...

  10. Windows下面对环境变量的操作

    如何在cmd命令行中查看.修改.删除与添加环境变量:首先明确一点:所有的在cmd命令行下对环境变量的修改只对当前窗口有效,不是永久性的修改.也就是说当关闭此cmd命令行窗口后,将不再起作用.永久性修改 ...