ACM__dongsheng的博客

我的学习笔记

XTU 1231 人生成就

题目描述

人生就像一个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

提示

大量的输入输出,请使用C风格的输入输出

#include<iostream>
#include<algorithm>
#include<string>
#include<cstring>
#include<cmath>
#include<cstdio>
using namespace std ;
int dp[510][510],ans[510][510];
int main()
{
    int t;
    while(scanf("%d",&t)!=EOF)
    {
        memset(dp,0,sizeof(dp));
        memset(ans,0,sizeof(ans));
        int i,j;
        for(i=1;i<=t;i++)
        {
            for(j=1;j<=t;j++)
            {
                scanf("%d",&dp[i][j]);
            }
        }
        for(i=1;i<=t;i++)
        {
            for(j=1;j<=t;j++)
            {
                if(dp[i-1][j]>dp[i][j-1])
                {
                    dp[i][j]+=dp[i-1][j];
                    if(i==1||j==1)
                    ans[i][j]=1;
                    else
                    ans[i][j]=ans[i-1][j];
                }
                else if(dp[i-1][j]<dp[i][j-1])
                {
                    dp[i][j]+=dp[i][j-1];
                    if(i==1||j==1)
                    ans[i][j]=1;
                    else
                    ans[i][j]=ans[i][j-1];
                }
                else
               {
                dp[i][j]+=dp[i-1][j];
                if(i==1||j==1)
                ans[i][j]=1;
                else 
                ans[i][j]=ans[i-1][j]+ans[i][j-1];
               }
               ans[i][j]%=123456;
            }
        }
        printf("%d\n",ans[t][t]%123456);
    }
    return 0;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ACM__dongsheng/article/details/51559482
个人分类: dp
上一篇XTU 1227 Digit
下一篇计蒜客 X的平方根
想对作者说点什么? 我来说一句

零点起飞学VBA资料

2016年05月26日 2.55MB 下载

java给力资源下载

2011年05月02日 15.25MB 下载

规划人生成就未来教程

2008年08月28日 3.4MB 下载

MTK MMI 手把手(1)

2010年02月02日 1.37MB 下载

我要成名ppt

2007年05月22日 23.03MB 下载

Win32编程必知必会

2013年05月17日 9KB 下载

java 核心技术卷1第八版

2009年05月17日 266KB 下载

关于方阵的问题

2013年04月20日 1KB 下载

没有更多推荐了,返回首页

关闭
关闭