http://202.197.224.59/OnlineJudge2/index.php/Problem/read/id/1231

直接递推。

在保存最大值的时候同时保存有多少条到达最大值的路径,注意第一行第一列的情况即可。

别忘了 取模。

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 #include <algorithm>
 5 const int maxn = 510;
 6 int dp[maxn][maxn],p[maxn][maxn],q[maxn][maxn];
 7 int main()
 8 {
 9     int n;
10     while(~scanf("%d",&n))
11     {
12         memset(dp,0,sizeof(dp));
13         for(int i=1;i<=n;i++) {
14             for(int j=1;j<=n;j++) {
15                 scanf("%d",&p[i][j]);
16                 q[i][j]=1;
17             }
18         }
19         for(int i=1;i<=n;i++) {
20             for(int j=1;j<=n;j++) {
21                 if(dp[i-1][j]>dp[i][j-1]) {
22                     dp[i][j]=dp[i-1][j]+p[i][j];
23                     if(i==1||j==1) continue;
24                     q[i][j]=q[i-1][j];
25                 }
26                 else if(dp[i][j-1]>dp[i-1][j]) {
27                     dp[i][j]=dp[i][j-1]+p[i][j];
28                     if(i==1||j==1) continue;
29                     q[i][j]=q[i][j-1];
30                 }
31                 else {
32                     dp[i][j]=dp[i-1][j]+p[i][j];
33                     if(i==1||j==1) continue;
34                     q[i][j]=q[i-1][j]+q[i][j-1];
35                 }
36                 q[i][j]%=123456;
37             }
38         }
39     //    for(int i=1;i<=n;i++) {
40           //  for(int j=1;j<=n;j++)
41              //   printf("%d ",q[i][j]);
42            // printf("\n");
43         //}
44         printf("%d\n",q[n][n]%123456);
45     }
46     return 0;
47 }

View Code

转载于:https://www.cnblogs.com/nowandforever/p/4471883.html

XTU -1231 人生成就 (dp + 记录最优解的个数)相关推荐

  1. 马云:格局不够大,人生成就再高也有限!

    一.序言故事 有一家庭妇女,一天她买了一件衣服,回头习惯性地跟邻居显摆,却发现同样的衣服邻居比她少花了20元钱,于是她耿耿于怀数天.这人的格局就值20元钱了. 有一个乞丐,整天在街上乞讨,对路上衣着光 ...

  2. 【人生成就达成】【#1】

    手贱交错代码RE了一次 用一坨usaco的水题凑了数 终于达成了人生成就 估计下一次达成就是在寒假了T_T

  3. hdu1074 状态压缩dp+记录方案

    题意:       给你一些作业,每个作业有自己的结束时间和花费时间,如果超过结束时间完成,一天扣一分,问你把n个作业完成最少的扣分,要求输出方案. 思路:       状态压缩dp,记录方案数的地方 ...

  4. 打印最少硬币的组合-dp+记录路径

    题目: 有5种硬币,面值分别为:1,5,10,25,50.数量无限,输入非负整数s,选用硬币,使其和为s.要求输出最少的硬币组合的方案? 数据范围: s最大为250. 解题思路: 有时间再写,可以评论 ...

  5. 2022年9月11日:人生第一次相亲记录

    记录时间:2022年9月11日11:56:01 前言: 交流过程 一. 交流过程,未对姑娘个人情况做详细询问,以下总结 二.对于姑娘主管提出的几个问题及答复 总体总结 总结个人情况短板: 个人总结: ...

  6. 我的人生之路记录(更新2020年9月)

    我的个人信条 生活低姿态 保持终身学习态度 也许5年,10年,15年后,甚至更远,回头一看少年已变. ---2017/7月 我的校园招聘 19届应届生,不才,跨专业,普通一本,哈哈,在招聘中真的是茫茫 ...

  7. 树形依赖背包dp的最优解问题

    fij表示在dfs序序列上做了前i个点,已经选择了j个人的最大权值和. 那么如果这个点选fij−>fi+1,j+1 如果不选fij−>fi+sizei,j(表示跳过子树转移) code: ...

  8. 2020年人生目标 随笔记录

    ------20200527 更新----- 现在看来真是讽刺!2020 目标之有一个,活着

  9. java记录类加载的个数_java类加载过程 - audience_1的个人空间 - OSCHINA - 中文开源技术交流社区...

    java类加载过程: 在我们代码中,一般就一个new的方法,就能够创建一个java的对象类,但在java虚拟机中 1:首先,我们需要判断该类是否已经在方法区中的常量池中有一个类的符号的引用存在,如果该 ...

最新文章

  1. Python这些操作,逆天且实用!
  2. 点击button时候传递一个参数实现局部刷星_Tkinter的一个小小的规则,如果不了解,可能不会解决掉这个问题...
  3. mysql 表设计 date_mysql 表 Date类型
  4. react怎么连接打印机_怎么连接同事已共享的打印机?
  5. [OS] 死锁相关知识点以及银行家算法详解
  6. 2.7 RMSprop
  7. 【skimage.util.shape】有关view_as_windows裁剪数组及恢复的简单尝试
  8. 用nload查看LINUX的网络流量
  9. 服务器硬盘开机吱吱响,硬盘吱吱响怎么回事?电脑硬盘响动原因和解决方法
  10. 电子计算机的字母是什么意思,计算器上的英文字母
  11. 12月,最火热的区块链金融技术峰会!错过又要等一年!!
  12. torch.autograd.grad求二阶导数
  13. lua中 高效判断数组(table)中是否存在某个字符 值
  14. 单位换算android,Android单位换算
  15. Inno Setup入门(十一)——完成安装后执行某些程序
  16. 2020年11月26日JetbrainsAgent安装参数
  17. php 自动翻译函数(中文翻译成英文)
  18. LeetCode ----车的可捕获量(JavaScript解法)
  19. Educoder-java入门:综合练习之ATM取款机
  20. linux docker重启nginx,记录一次docker导致宿主机重启故障解决方法

热门文章

  1. Linux 查找redis进程命令:ps -ef | grep redis
  2. wget安装Jenkins
  3. SQLyog连接虚拟机中mysql8.0详解,2003、1130、2058错误码解决
  4. 由于更换了java版本,Eclipse启动时报错:JRE or JDK must be available in order to run Eclipse
  5. 用python玩转数据第四周答案_用Python玩转数据_章节答案
  6. jenkins中Git Parameter Plugin使用
  7. Qt for Python之 PySide2+QML 入门示例
  8. Qt:解决使用png图片时,报错libpng warning: iCCP: known incorrect sRGB profile的问题
  9. python: Failed calling sys.__interactivehook__ (Windows)
  10. 使用spi协议,接收来自slave的数据之前写0xff的原因