觉得写这道(水)题题解的人挺少的,那我就来发一篇c++的吧

首先题目描述:

布洛瓦侯爵想利用维多利加来占卜二战的局势。侯爵只给了她一盘西洋棋和 许多书,便将她关在了王宫的地牢。

西洋棋盘可以看成一个 N * M 的网格。西洋棋可以摆放在任何一个格子里, 而不是网格线的交叉点上。

维多利加将一个棋子放在了左上角的格子上。她试着移动这个棋子,棋子只 会向右或者向下移动。

每个格子有一个权值,维多利加想知道,从左上角到右下角的所有路径中:

1. 经过的格子的权值和最大是多少? 
2. 权值和最大的路径一共有多少条?

输入格式

第一行两个整数 N,M。

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

输出格式

输出两行,

第一行表示最大权值和,

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

样例 #1

样例输入 #1

3 3 
1 1 1 
1 2 1 
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。


一道DP题

大致思路:

首先定义两个数组 f 和 g 分别表示最大数路径数

先写两个循环分别表示n层m列,然后里面逐个输入并进行判断,先输入当前值
 
 这时要写一个特判如果是第一个那么直接输入就好了,接下来每个都判断一下,
 
 如果当前F[j]的值比上一个值大的话就直接加上当前输入的值

if (f[j]>f[j-1])f[j]+=ad;

如果比上一个值小的话,那么

if (f[j]<f[j-1])
{f[j]=f[j-1]+ad;g[j]=g[j-1];
}

否则就只剩下相等了

f[j]=f[j-1]+ad;  //
g[j]=(g[j]+g[j-1])%1000000007;//mod

如果大于的话,路径数不变

如果小于的话,路径数等于上一条的路径数

如果等于的话,路径数等于上一条的路径数加上这条的路径数

废话不多说,献上本蒟蒻的

80分

代码 :

#include<bits/stdc++.h>
using namespace std;
long long f[2001],g[2001];
int n,m,ad;
int hans(){for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){  cin>>ad; if (i==1&&j==1) f[j]=ad; else{if (f[j]>f[j-1])f[j]+=ad;else{if (f[j]<f[j-1]){f[j]=f[j-1]+ad; g[j]=g[j-1]; }else{f[j]=f[j-1]+ad;  g[j]=(g[j]+g[j-1])%1000000007;}}}}}}
int main()
{cin>>n>>m;g[1]=1;hans();cout<<f[m]<<endl; cout<<g[m]<<endl;return 0;
}

我当时百思不得其解为什么只得了80分
直到我听安老师讲了一遍,(才恍然大悟),具体就不解释了想知道的话去安老师的博客里看一眼吧

最后献上 100 分代码

#include<bits/stdc++.h>
using namespace std;
long long f[2001],g[2001];  //最大值和路径数,注意要开 LL
int n,m,ad;
int hans(){for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){  //n*m个cin>>ad; //当前值if (i==1&&j==1) f[j]=ad; //特判第一个格子else{if (f[j]>f[j-1])f[j]+=ad;else{if (f[j]<f[j-1]){f[j]=f[j-1]+ad; g[j]=g[j-1]; //上一条路径数}else{f[j]=f[j-1]+ad;  //g[j]=(g[j]+g[j-1])%1000000007;}//一定要先取模否则会超时}}}}}
int main()
{cin>>n>>m;memset(f,0xFA,sizeof(f)); //坑我二十分g[1]=1;hans();cout<<f[m]<<endl;  //输出cout<<g[m]<<endl;return 0;
}

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

  1. 对布满灰尘的西洋棋宣告将军 (chess)

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. 最重要的是跑完,而不是刚开始跑得有多快

    到目前为止,你总共在自己本来有兴趣学的事情上对自己说过多少次"唉,我看我没有天分,还是算了吧"的话呢? 这句话通常被用来当作宣告某一段努力完全失败的休止符,也常被用来把某一扇门关上 ...

  9. 数据结构和算法(Java),上

    文章目录 第1章 数据结构和算法的概述 数据结构和算法的关系 线性结构和非线性结构 线性结构 非线性结构 第2章 稀疏数组和队列 稀疏数组 案例引入 稀疏数组的基本介绍 应用实例 队列 队列介绍 数组 ...

最新文章

  1. pandas写excel报错ModuleNotFoundError: No module named ‘xlwt‘
  2. ROS Kinetic 与STM32通信,控制一盏LED灯
  3. leetcode162. 寻找峰值 变种二分见过吗
  4. 【Java数据结构与算法】第十八章 动态规划和KMP算法
  5. 20. 自定义配置文件
  6. 牛客网暑期ACM多校训练营(第四场)G Maximum Mode(思维)
  7. QQ广告营销推广全能王 QQ空间自动发表日志说说广告实用工具!
  8. 乐鑫Esp32学习之旅30 对接华为IoT物联网平台适配踩坑,使用ESP-IDF 编程使用HTTPS请求固件跳过证书校验,实现OTA远程升级文件。(附带源码)
  9. FU-A STAP-A
  10. android wifi速度太慢,手机连上wifi之后速度比4G还慢?设置好DNS让你体验飞一般的感觉...
  11. 使用pca进行坐标系转换、降维
  12. 《项目管理知识体系指南》(PMBOK®指南)第3 版
  13. 如何使用js把网页适配为一屏的几个技巧
  14. 2022-2028年中国地震预警行业投资潜力分析及发展前景展望报告
  15. 大众点评Java开发实时应用监控平台-CAT
  16. Elastic-job系列(一)-------- 搭建Esjob控制台
  17. 纯 html 实现一个简单的个人简历
  18. 读论文Recursive Deep Models for Semantic Compositionality Over a Sentiment Treebank
  19. 职场人士论文下载方法
  20. php开发微信公众号token验证失败,Thinkphp5 微信公众号token验证不成功的原因

热门文章

  1. 没有HOOK就没有病毒?详谈HOOK API技术(转)
  2. 2020中国建设银行信息技术岗提前面试经历
  3. 最全的免费SSL证书申请方式
  4. echars 图表过渡动画设置
  5. SDL游戏开发之三-瓦片地图
  6. 基于Java的奖学金评定系统的设计与实现毕业设计
  7. mysql查表的时候报错:java.sql.SQLException: Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.T
  8. 【嵌入式】STM32通讯方式
  9. 2021年G1工业锅炉司炉新版试题及G1工业锅炉司炉试题及解析
  10. 13 对发生拷贝数变异的基因进行 KEGG 注释