这真是一道有趣的题目。 ——垃圾一个

首先,我们知道,有一个C++11才有的东西:__int128,它的上界是\(2^{128}-1\)。
然后,我们知道,有一个叫宏定义的东西,它可以长这样#define int __int128
最后,有一个玄学知识,main函数不仅可以是int,也可以是signed

基础玄学知识介绍完毕。

接下来说说如何\(DP\)。

首先我们仅考虑每一行如何取(具体原因自行看题)。

然后对于每一行,我们仅考虑取头与取尾的\(max\)值(具体原因同上)。

然后定义\(f_{i,j}\)为取区间\([i,j]\)的最大值,定义\(a_i\)为该行第\(i\)个数。

则转移方程为:
\(f_{i,j}=\max{f_{i+1,j}+a_i \times x,f_{i,j-1}+a_j \times x},x\)为题目说的要加的数。

接下来考虑如何降维打击

你想,如果取的时候先乘上一个2,然后每次遇到一个区间时在乘2,最后效果其实是一样的。

所以\(DP\)式变成:
\(f_{i,j}=\max{2 \times f_{i+1,j}+2 \times a_i,2 \times f_{i,j-1}+2 \times a_j}\)

化简为:
\(f_{i,j}=\max{2 \times (f_{i+1,j}+a_i),2 \times (f_{i,j-1}+a_j)}\)

即核心代码为

int dp(int sum[])
{memset(f,0,sizeof(f));int i,j;for(i=0;i<=m;i++)           //i枚举长度,注意,长度可以为0。for(j=1;i+j<=m;j++)     //j枚举起点。f[j][i+j]=max(2*(f[j+1][i+j]+sum[j]),2*(f[j][i+j-1]+sum[i+j]));return f[1][m];             //最后所求区间为f[1][m]。
}

然后使用我们的基础玄学知识

果断CE,没猜错吧?

__int128不自带输入输出!!!

这里提供快读快写的板子。

最后放个总代码。

#include<bits/stdc++.h>
using namespace std;
#define int __int128
int a[90][90];
int f[90][90];
int n,m;
template<typename T>void qin(T &x)
{x=0;char ch;bool f=0;ch=getchar();while(!isdigit(ch)&&ch!='-') ch=getchar();if(ch=='-') ch=getchar(),f=1;while(isdigit(ch)) x=x*10+ch-'0',ch=getchar();if(f==1) x=-x;
}
void qout(int x)
{if(x<0) putchar('-'),x=-x;if(x>9) qout(x/10);putchar(x%10+'0');
}
int dp(int sum[])
{memset(f,0,sizeof(f));int i,j;for(i=1;i<=m;i++)for(j=1;i+j<=m;j++)f[j][i+j]=max(2*(f[j+1][i+j]+sum[j]),2*(f[j][i+j-1]+sum[i+j]));return f[1][m];
}
int main()
{qin(n),qin(m);int i,j;for(i=1;i<=n;i++)for(j=1;j<=m;j++)qin(a[i][j]);int ans=0;for(i=1;i<=n;i++)ans+=dp(a[i]);qout(ans);return 0;
}

转载于:https://www.cnblogs.com/Garbage-Only-one/p/11436134.html

洛谷题解 P1005 【矩阵取数游戏】相关推荐

  1. 洛谷P1005 矩阵取数游戏 ACM 大数+区间dp

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n \times mn×m的矩阵,矩阵中的每个元素a_{i,j}ai,j​均为非负整数.游戏规则如下: 每次取数时须从每行各取走一个元素,共n ...

  2. 【每日DP】day 10、P1005 矩阵取数游戏【区间DP+高精(python)】难度⭐⭐⭐★

    P1005 矩阵取数游戏 输入 2 3 1 2 3 3 4 2 输出 82 说明/提示 NOIP 2007 提高第三题. 数据范围: 60%60\%60% 的数据满足:1≤n,m≤301\le n,m ...

  3. P1005 矩阵取数游戏(__int128模板/简单dp)

    转跳P1005 题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的 n \times mn×m 的矩阵,矩阵中的每个元素 a_{i,j}a i,j ​ 均为非负整数.游戏规则如下: 每次取数时 ...

  4. 洛谷1005 【NOIP2007】矩阵取数游戏

    问题描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  5. 矩阵游戏java_矩阵取数游戏JAVA题解

    话不多说,先上题目: 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的nm的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: {C}1. 每次取数时须从每行各取走一个元素,共n个.m次后取完矩 ...

  6. 【区间DP+高精】codevs1166 矩阵取数游戏题解

    转自: [ametake版权所有]http://blog.csdn.net/ametake欢迎来看 http://blog.csdn.net/ametake/article/details/47664 ...

  7. 【日常学习】【区间DP+高精】codevs1166 矩阵取数游戏题解

    题目来自NOIP2007TG3 如果在考场上我现在已经歇菜了吧 今天一整天的时间全部投在这道题上,收获不小. 先上题目 题目描述 Description [问题描述] 帅帅经常跟同学玩一个矩阵取数游戏 ...

  8. NOIP2007 提高组【矩阵取数游戏】题解

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素a(i,j)均为非负整数.游戏规则如下: 每次取数时须从每行各取走一个元素,共n个.经过m次后取完矩阵内所有元素 ...

  9. 【每日一题】7月10日精讲—矩阵取数游戏

    来源:牛客网: 文章目录 题目描述 题解: 代码: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld ...

  10. 【codevs1166】【noip07TG】矩阵取数游戏,新的开始

    1166 矩阵取数游戏 2007年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description [问题描述] 帅帅经 ...

最新文章

  1. boot loader:Grub
  2. python程序保存_初识python 文件读取 保存
  3. beeline执行sql语句_由“Beeline连接HiveServer2后如何使用指定的队列(Yarn)运行Hive SQL语句”引发的一系列思考...
  4. Docker——Docker Compose
  5. hook xposed 自定义类_【开始学习React Hook(1)】Hook之useState
  6. JSFL:导入Png图片导出swf
  7. 在Jetty中设置SSL
  8. 隐藏导航条HTML,jQuery实现的导航条切换可显示隐藏
  9. thymealf 高级用法_Thymeleaf
  10. 再谈节奏与动力---平淡与枯燥的力量
  11. 底层软件工程师的一次冒险经历
  12. 【java】javac命令在win10不可用,提示javac不是内部或外部命令,也不是可运行的程序【解决方法】
  13. 树莓派百度语音识别+图灵机器人对话聊天机器人
  14. 用ADB操纵手机实现连点器(折衷案)
  15. vue.js中使用甘特图(gantt-elastic)的使用
  16. (一)双目标定OpenCV读双目摄像头合并图像并分割
  17. Flutter Convex Bottom 底部导航
  18. 利用有放回抽样估计自然常数e python
  19. 【Android】Android外接音源设备之小蜜蜂坑
  20. 如何登录设备(睿易篇)

热门文章

  1. 2018上海大学生网络安全赛 misc 92 wp
  2. 杭电2006~2009计算机学院笔试真题详解
  3. python利用Tesseract识别验证码
  4. PXE+kickstart 无人值守安装CentOS 6
  5. tomcat内存设置
  6. django发送邮件结合itsdangerous+celery+redis
  7. Android自定义ToolBar布局
  8. CentOS 修改默认语言
  9. 未能打开组策略对象 您可能没有合适的权限
  10. 小马儿随笔(七)——综合布线的安装时代