1084 矩阵取数问题 V2
第1行:2个数M N,中间用空格分隔,为矩阵的大小。(2 <= M, N <= 200)
第2 - N + 1行:每行M个数,中间用空格隔开,对应格子中奖励的价值。(1 <= A[i,j] <= 10000)
输出能够获得的最大价值。
3 3
1 3 3
2 1 3
2 2 1
17 // 读数真是会玩, 首先说是 M * N 的矩阵,然后读入是 m, n ,然而,却是 n 行 m 列
//其实仔细分析一下这个问题可知,就是从起点走两条线向终点,然后可以想到,其实两段线并不会相交,因为如果相交,必定存在一个不相交的方案使和更大。
dp[st][a][b] 表示,走 st 步,第一条线在 a 行, 第二条线在 b 行,各自的列数可以计算出,然后就分四种情况愉快的dp辣
DP:
#include <bits/stdc++.h>
using namespace std;
#define MOD 998244353
#define INF 0x3f3f3f3f
#define LL long long
#define MX 205 int m, n;
int dat[MX][MX];
int dp[MX*][MX][MX]; //step , a , b int main()
{
while (scanf("%d%d",&m,&n)!=EOF)
{
for (int i=;i<=n;i++)
{
for (int j=;j<=m;j++)
scanf("%d",&dat[i][j]);
}
int ut = n+m-;
for (int st=ut;st>=;st--)
{
for (int a=;a<=n;a++)
{
for (int b=;b<=a;b++)
{
int ay = st-a+;
int by = st-b+;
if (ay<||ay>n||by<||by>n) continue; int tp1 = max(dp[st+][a+][b+],dp[st+][a][b]);
int tp2 = max(dp[st+][a+][b], dp[st+][a][b+]);
tp1 = max(tp1,tp2);
if (a==b)
dp[st][a][b] = max(dp[st][a][b],tp1 + dat[a][ay]);
else
dp[st][a][b] = max(dp[st][a][b],tp1 + dat[a][ay] + dat[b][by]);
//printf("?:%d %d %d %d\n",st,a,b,dp[st][a][b]);
}
}
}
printf("%d\n",dp[][][]);
}
return ;
}
最小费用最大流也可做,正好学习一下
1084 矩阵取数问题 V2的更多相关文章
- 51Nod 1084 矩阵取数问题 V2 —— 最小费用最大流 or 多线程DP
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1084 1084 矩阵取数问题 V2 基准时间限制:2 秒 空 ...
- 51Nod 1084 矩阵取数问题 V2 双线程DP 滚动数组优化
基准时间限制:2 秒 空间限制:131072 KB 一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励,先从左上走到右下,再从右下走到左上.第1遍时只能向下和向右走,第2遍时只能向 ...
- 51Nod 1084:矩阵取数问题 V2(多维DP)
1084 矩阵取数问题 V2 基准时间限制:2 秒 空间限制:131072 KB 分值: 80 难度:5级算法题 收藏 关注 一个M*N矩阵中有不同的正整数,经过这个格子,就能获得相应价值的奖励 ...
- 51nod1084 矩阵取数问题 V2
O(n4)->O(n3)妈呀为什么跑这么慢woc #include<cstdio> #include<cstring> #include<cctype> #i ...
- NOIP2007 矩阵取数游戏
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- NOIP2007矩阵取数[DP|高精度]
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- TYVJ 矩阵取数 Label:高精度+dp
题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...
- 【NOIP2007】矩阵取数
因为傻逼写错高精度搞了一下午浪费好多时间,好想哭qaq 原题: 帅帅经常更同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij据为非负整数.游戏规则如下: 1. 每次取数时须从每 ...
- 1166 矩阵取数游戏[区间dp+高精度]
1166 矩阵取数游戏 2007年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description [ ...
随机推荐
- 手游产品经理初探(四)从Buybutton谈玩家付费
付费模块一直是游戏中最最重要的一块,那么今天我们从玩家的角度来解说哪种方式付费更迎合玩家的心理.我还是着重从我做的Casino类型游戏说起. 一般来说游戏界面喜欢把付费button放在界面最醒目的位置 ...
- LoadRunner中如何验证下载的文件大小、统计下载时间、度量下载速度
LoadRunner中的web_get_in_property函数可用于返回上一个HTTP请求的相关信息,包括HTTP请求返回码.下载大小.下载时间等: The web_get_int_propert ...
- HTTP协议--cookie、session、缓存与代理
1 Cookie和 Session Cookie和 Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决 HTTP无状态的问题而所做的努力. Session可以用 Cook ...
- Matlab The Bisection Method
MATLAB语言 function y=f(x) y=f(x); %函数f(t)的表达式 i=0; %二分次数记数 a=a; %求根区间左端 b=b; %求根区间右端 fa=f(a); %计算f(a) ...
- Windows GDI 映射模式(出自:Windows程序设计第5版-珍藏版)
GDI映射模式(mapping mode):和映射模式紧密相关的还有4个其它的设备环境属性:1.窗口原点(window origin)2.视口原点(viewport origin)3.窗口范围(win ...
- Codeforces Round #277 (Div. 2)---A. Calculating Function (规律)
Calculating Function time limit per test 1 second memory limit per test 256 megabytes input standard ...
- 辛星浅析Linux中的postfix
Postfix是眼下Linux下主流的邮件server,也就是MTA,主要用来实现SMTP协议,它能够兼容sendmail.而postfix也是为了改进sendmail而制作产生的. 通常来说.pos ...
- Creating Dialogbased Windows Application (4) / 创建基于对话框的Windows应用程序(四)Edit Control、Combo Box的应用、Unicode转ANSI、Open File Dialog、文件读取、可变参数、文本框自动滚动 / VC++, Windows
创建基于对话框的Windows应用程序(四)—— Edit Control.Combo Box的应用.Unicode转ANSI.Open File Dialog.文件读取.可变参数.自动滚动 之前的介 ...
- nyoj304 节能
节能 时间限制:1000 ms | 内存限制:65535 KB 难度:5 描述 Dr.Kong设计的机器人卡多越来越聪明.最近市政公司交给卡多一项任务,每天早晨5:00开始,它负责关掉ZK大道右侧 ...
- eclipse 设置智能感知功能
今天有点时间,研究了一下MyEclispse的智能感知的功能.刚开始使用它时总是感觉如此不爽→智能感知功能太弱!与Visual Studio2008简直不是一个档次的!不过后来经过查看网上的资料发现它 ...