题目描述

维多利加:这里的确有许多书,但是……
这里没有你。
【问题描述】
        布洛瓦侯爵想利用维多利加来占卜二战的局势。侯爵只给了她一盘西洋棋和 许多书,便将她关在了王宫的地牢。
       西洋棋盘可以看成一个 N*M 的网格。西洋棋可以摆放在任何一个格子里, 而不是网格线的交叉点上。
       维多利加将一个棋子放在了左上角的格子上。她试着移动这个棋子,棋子只 会向右或者向下移动。
       每个格子有一个权值,维多利加想知道,从左上角到右下角的所有路径中:
       1.经过的格子的权值和最大是多少?
       2.权值和最大的路径一共有多少条?

输入

第一行两个整数 N,M。
接下来 N 行,每行 M 个整数,表示每个格子的权值。

输出

输出两行,第一行表示最大权值和,第二行表示权值和最大的路径数除以 1e9+7 的余数。

样例输入

3 3
1 1 1
1 2 1
1 1 1

样例输出

6
4

数据范围限制

Ai,j 表示第 i 行第 j 列格子的权值。
30%的数据保证,N≤5,M≤5。
60%的数据保证,N≤100,M≤100。
另有 20%的数据保证,对于任意的 i 和 j,Ai,j = 1。
100%的数据保证,N≤2000,M≤2000,|Ai,j|≤10^9。

[4]对布满灰尘的西洋棋宣告将军(chess)
这是一题dp,就像数字三角形一样,因为他只能从右边或上面得来,所以我们要判断找出他上面和右边之间的最大值,然后就用f[i,j,2]来计算这个最大的个数。最后直接输出就行了。

[plain]  view plain copy
  1. function max(a,b:longint):longint;
  2. begin
  3. if a>b then
  4. begin
  5. f[i,j,2]:=f[i,j-1,2];
  6. exit(a);
  7. end;
  8. if a<b then
  9. begin
  10. f[i,j,2]:=f[i-1,j,2];
  11. exit(b);
  12. end;
  13. if a=b then
  14. begin
  15. f[i,j,2]:=(f[i,j-1,2]+f[i-1,j,2])mod 1000000007;
  16. exit(b);
  17. end;
  18. end;
[html]  view plain copy
  1. <pre name="code" class="plain">for i:=1 to n do
  2. for j:=1 to m do
  3. read(a[i,j]);
  4. for i:=1 to n do f[i,0,2]:=1;
  5. for i:=1 to n do
  6. begin
  7. for j:=1 to n do
  8. begin
  9. if (i>1)and(j>1) then f[i,j,1]:=max(f[i,j-1,1],f[i-1,j,1])+a[i,j];
  10. if i=1 then
  11. begin
  12. f[i,j,1]:=f[i,j-1,1]+a[i,j];
  13. f[i,j,2]:=1;
  14. end;
  15. if j=1 then
  16. begin
  17. f[i,j,1]:=f[i-1,j,1]+a[i,j];
  18. f[i,j,2]:=1;
  19. end;
  20. end;
  21. end;
  22. writeln(f[n,m,1]);
  23. writeln(f[n,m,2]);

对布满灰尘的西洋棋宣告将军 (chess)相关推荐

  1. 2047. 对布满灰尘的西洋棋宣告将军

    2047. 对布满灰尘的西洋棋宣告将军  题目描述 维多利加:这里的确有许多书,但是-- 这里没有你. [问题描述]         布洛瓦侯爵想利用维多利加来占卜二战的局势.侯爵只给了她一盘西洋棋和 ...

  2. 对布满灰尘的西洋棋宣告将军_纪中2047_dp

    题目描述 维多利加:这里的确有许多书,但是-- 这里没有你. 布洛瓦侯爵想利用维多利加来占卜二战的局势.侯爵只给了她一盘西洋棋和 许多书,便将她关在了王宫的地牢. 西洋棋盘可以看成一个 N*M 的网格 ...

  3. T266691 对布满灰尘的西洋棋宣告将军

    觉得写这道(水)题题解的人挺少的,那我就来发一篇c++的吧 首先题目描述: 布洛瓦侯爵想利用维多利加来占卜二战的局势.侯爵只给了她一盘西洋棋和 许多书,便将她关在了王宫的地牢. 西洋棋盘可以看成一个 ...

  4. POJ_2488(DFS算法,西洋棋)

    POJ_2488,dfs西洋棋问题,同马走日(POJ_4123) #include <iostream> #include <cstring> #include <cma ...

  5. 继西洋棋大师、魔术方块之后 人工智能挑战迭迭乐游戏

    借助机器学习和算法模型等,机器人已成为西洋棋大师,魔术方块记录刷新者.MIT麻省理工学院的科学家研制的新机器人的挑战项目是「迭迭乐(Jenga)游戏」,别看迭迭乐规则看似简单,但是对动手能力和思维策略 ...

  6. 在西洋棋、将棋打败人类之后,电脑也将在围棋战胜人类

    1997 年,在 IBM 的深蓝战胜西洋棋世界冠军 Garry Kasparov 之后,<时代>杂志提出了一项新的挑战:让电脑与人类下围棋吧,它获胜的机会很小."电脑要在围棋上战 ...

  7. 【人工智能简史】第二章 早期实验与尝试——图灵测试与图灵机器、逻辑理论机与麦卡锡、第一个人工智能程序:塞缪尔的西洋棋程序

    目录 第二章 早期实验与尝试 / <人工智能简史> 概述 图灵测试与图灵机器

  8. java四连环游戏编程_Java实现四连环棋游戏

    本文实例为大家分享了Java实现四连环棋游戏的具体代码,供大家参考,具体内容如下 游戏规则: (1)双人游戏,有黑红两色棋子,双方各执一色棋子. (2)空棋局开盘,黑棋先发,从最上面一行开始下,棋子会 ...

  9. 基于Alpha-Beta剪枝树的井字棋人机博弈实现

    1 Alpha-Beta剪枝树的简单介绍 Alpha-Beta剪枝的本质就是基于极小化极大算法的一种改进算法.因此先简单地介绍下极小化极大算法,这样有利于我们更好的理解Alpha-Beta剪枝算法. ...

最新文章

  1. 扩增子统计绘图7三元图
  2. 数据分析必备:掌握这个R语言基础包1%的功能让你事半功倍!(附代码)
  3. SeetaFace2 测试
  4. Learning to Rank 中Listwise关于ListNet算法讲授及实现
  5. 在eclipse中如何查看JAVA JDK的源代码
  6. 1028 人口普查 (20 分)(c语言)
  7. 登陆界面(jsp)客户端验证
  8. 22张令人叹为观止的照片,你所未知的另一面
  9. mysql 半同步 主主_MySQL主从,半同步,主主复制
  10. 18-mysql-数据类型
  11. 函数式编程 -- 测试题集
  12. 【华为云技术分享】圣诞特别版 | 数据库频频出现OOM问题该如何化解?
  13. Xcode的编译/运行结果保存的路径
  14. C语言面试题分类-位运算
  15. 为什么一般都使用 List list = new ArrayList() ,而不用 ArrayList alist = new ArrayList()呢?...
  16. e.style.opacity 通过javascript调用元素的样式属性
  17. Recommender Sys Interview Qs
  18. ReactNative 仿造 ofo 共享单车快速开发的app
  19. hyperscan5.0编译方式整理
  20. 数值分析-LU三角分解

热门文章

  1. 员工考勤系统业务建模+系统用例图
  2. python金融量化 pdf_python量化交易pdf,Python和金融分析的关系?量化交易内容深度?...
  3. VIVO一面竟然翻车,十年Java编程开发生涯
  4. 一个函数有多少行代码比较合适?
  5. g40-45支持虚拟化技术_速龙II X4 641支持虚拟化技术吗
  6. 美创科技荣获中国计算机行业协会数据安全专业委员会“优秀成员单位”
  7. Spring-Spring Web项目中配置使用Log4j 2
  8. 别再让知识星球消耗你的影响力!
  9. Android直播推流学习
  10. 一个前端人眼中的区块链