人生成就

Accepted : 54   Submit : 104
Time Limit : 10000 MS   Memory Limit : 65536 KB

题目描述

人生就像一个n*n的矩阵,矩阵每个元素都跟上下左右四个方向的元素联通,起始在左上角,终止在右下角,从起点开始,每次一个向右或向下移动一格。 每个元素上面都有一个人生成就值,表示你如果经历这个元素时候能增加的人生成就。 初始时候你的人生成就值为0,你当然想到达终点时候能获得最大的人生成就。那么问题来了:(你一定会以为我会要你求出到达终点时的最大人生成就值,但是你错了),问题就是,一共有多少条不同的路到终点时能达到最大的人生成就。

输入

约200个样例 每个样例的第一行为一个整数n(2 ≤ n ≤ 500),表示矩阵大小。以后的n行,每行n个整数cij表示这个矩阵, 0 ≤ cij ≤ 100。

输出

每行输出一个整数,最终的结果可能很大,请把结果对123456取模。

样例输入

3
0 4 0
2 3 0
4 2 3
4
3 3 3 2
2 0 0 0
2 2 0 0
2 4 4 3
3
3 3 3
3 4 4
4 4 3

样例输出

1
2
5
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#define N 550
using namespace std;
int a[N][N],dp[N][N],num[N][N];
int main()
{ int i,j,n;
while(scanf("%d",&n)!=EOF)
{
memset(a,,sizeof(a));
memset(num,,sizeof(num));
memset(dp,,sizeof(dp));
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
dp[i][j]=max(dp[i-][j]+a[i][j],dp[i][j-]+a[i][j]);
}
}
num[][]=;
for(i=;i<=n;i++)
{
for(j=;j<=n;j++)
{
if(a[i][j]==dp[i][j]-dp[i-][j])
num[i][j]+=num[i-][j];
if(a[i][j]==dp[i][j]-dp[i][j-])
num[i][j]+=num[i][j-];
num[i][j]%=;
}
}
printf("%d\n",num[n][n]);
}
return ;
}

2015 湘潭大学程序设计比赛(Internet)--G题-人生成就的更多相关文章

  1. 2015 湘潭大学程序设计比赛(Internet)部分题解,其中有一个题与NYOJ1057很像,贪心过~~

    仙剑奇侠传                 祝玩的开心                                                                          ...

  2. 2015 湘潭大学程序设计比赛(Internet)--E题--烦人的异或

    烦人的异或 Accepted : 27   Submit : 102 Time Limit : 5000 MS   Memory Limit : 65536 KB 题目描述 如下图,有一N*M的表格, ...

  3. 2015 湘潭大学程序设计比赛(Internet)--D题-最小的数

    最小的数 Accepted : 47   Submit : 276 Time Limit : 1000 MS   Memory Limit : 65536 KB 题目描述 给你一个n位数,每次操作可以 ...

  4. 2015 湘潭大学程序设计比赛(Internet)H题-括号匹配

    括号匹配 Accepted : 30   Submit : 234 Time Limit : 10000 MS   Memory Limit : 65536 KB 题目描述 有一串括号(只包含&quo ...

  5. 记第五届山东省ACM程序设计比赛——遗憾并非遗憾

    记第五届山东省ACM程序设计比赛 5月10日上午9点半左右,我们的队伍从学校出发,一个多小时后到达本次比赛的地点-哈尔滨工业大学. 报道,领材料,吃午饭,在哈工大的校园里逛了逛,去主楼的自习室歇息了一 ...

  6. 2020安徽程序设计省赛 G序列游戏

    2020安徽程序设计省赛 G序列游戏 有一个序列w,初始为空.再给出一个长度为m 单调递增的序列a.你需要对序列w 作如下n 次操作: (1)操作0,在序列尾部添加数字0. (2)操作1,在序列尾部添 ...

  7. 2017Summmer_上海金马五校 F题,G题,I题,K题,J题

    以下题目均自己搜 F题  A序列 一开始真的没懂题目什么意思,还以为是要连续的子串,结果发现时序列,简直智障,知道题意之后,好久没搞LIS,有点忘了,复习一波以后,直接双向LIS,处理处两个数组L和R ...

  8. Asia Yokohama Regional Contest 2018 G题 What Goes Up Must Come Down

    链接 G题 https://codeforces.com/gym/102082 使其成为单峰序列需要交换多少次相邻的数. 树状数组维护逆序对. 对于每个序列中的数,要么在单峰的左侧,要么在单峰的右侧, ...

  9. 江西财经大学第一届程序设计竞赛 G题 小Q的口袋校园

    链接:https://www.nowcoder.com/acm/contest/115/G来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536 ...

随机推荐

  1. Yarn执行流程

    在Yarn中,JobTracker被分为两部分:ResourceManager(RM)和ApplicationMaster(AM). MRv1主要由三部分组成:编程模型(API).数据处理引擎(Map ...

  2. PHP 使用 MongoDB

    PHP 想要往 MongoDB 里增删查改数据,需要先安装 mongodb 或 mongo 扩展模块,一般两个都装上: cd /usr/local/src/ wget https://pecl.php ...

  3. MDK972-EK开发板裸调试设置和裸机程序烧写(转)

    硬件平台:MDK972-EK开发板编译调试软件:KEIL uVision4仿真工具:JLINK V7/V8   本例子从串口输出信息,如图:       KEIL uVision4调试设置如图所示: ...

  4. 深入浅出MFC——MFC多线程程序设计(七)

    1. 从操作系统层面看线程——三个观念:模块(MDB).进程(PDB).线程(TDB) 2. “执行事实”发生在线程身上,而不在进程身上.也就是说,CPU调度单位是线程而非进程.调度器据以排序的,是每 ...

  5. lua_gc源码学习

    最近发现在大数据量的 lua 环境中,GC 占据了很多的 CPU .差不多是整个 CPU 时间的 20% 左右.希望着手改进.这样,必须先对 lua 的 gc 算法极其实现有一个详尽的理解.我之前读过 ...

  6. mysql 创建merge表方便查询

    SELECT COUNT(*) FROM `comment` SHOW CREATE TABLE `comment` CREATE TABLE `comment1` ( `id` ) NOT NULL ...

  7. WP8.1学习系列(第九章)——透视Pivot开发指南

    Windows Phone 8 的 Pivot 控件 2014/6/18 适用于:Windows Phone 8 和 Windows Phone Silverlight 8.1 | Windows P ...

  8. PKI技术原理

    转:http://3layer.blog.51cto.com/57448/20430 对称加密         symmetric cryptographic 非对称加密     asymmetric ...

  9. eclipse中改变默认的workspace的方法

    1.File-->Switch Workspace-->Other 2.Window-->Preferences-->General-->Startup and Shui ...

  10. eclipse安装maven时候如果conf文件夹中有setting文件则会以这个文件为主,如果自己设置了user的配置文件则会无效

    eclipse安装maven时候如果conf文件夹中有setting文件则会以这个文件为主,如果自己设置了user的配置文件则会无效