求教!简单的ACM数塔问题,出现Runtime Error(ACCESS_VIOLATION)

问题描述

求教!简单的ACM数塔问题,出现Runtime Error(ACCESS_VIOLATION)

以下是代码,自己编译运行是对的

 #include<stdio.h>
int max(int a,int b)
{
    if(a>b)
        return a;
    else
        return b;
}
int main()
{
    int c,n,i,j;
    int a[100][100];
    int b[100][100];
    scanf("%d",&c);
    while(c--)
    {
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=i;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    for(j=1;j<=n;j++)
    {
        b[n][j]=a[n][j];
    }
    for(i=n-1;i>=1;i--)
    {
        for(j=1;j<=i;j++)
        {
            b[i][j]=a[i][j]+max(b[i+1][j],b[i+1][j+1]);
        }
    }
    }
    printf("%dn",b[1][1]);
    return 0;
}

谢谢!

解决方案

你应该根据n的值,用malloc/new动态分配下空间。

解决方案二:

http://www.cnblogs.com/chuanlong/archive/2012/11/13/2767400.html
http://blog.csdn.net/xujinsmile/article/details/7840840

解决方案三:

那是你的数据范围没有超范围,而后台的测试数据比你的范围要大所以就会RE

解决方案四:

是不是你的数组开小了

时间: 2024-09-30 12:54:58

求教!简单的ACM数塔问题,出现Runtime Error(ACCESS_VIOLATION)的相关文章

acm问题-ACMoj报错Runtime Error:[ERROR] A Not allowed system call: runid:14130 callid:240

问题描述 ACMoj报错Runtime Error:[ERROR] A Not allowed system call: runid:14130 callid:240 区间最大数: 给出一列数共N个,将其从1到N编号,进行M次查询X, Y,给出第X个数到第Y个数间最大的数. 一组测试数据,第一行输入N,M(1<=N, M<=10^5),第二行N个数:之后M行,每行分别为X,Y.给出一列数共N个,将其从1到N编号,进行M次查询X, Y,给出第X个数到第Y个数间最大的数. 对于每个[X, Y]输出

hdu2084 数塔【简单DP】

数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 17241 Accepted Submission(s): 10340 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉

net framework-为何称简单的int数和泛型列表为不稳定资源,不稳定资源是如何定义的?

问题描述 为何称简单的int数和泛型列表为不稳定资源,不稳定资源是如何定义的? 在<C#高级编程>的System.Transaction章节中称简单的int数和泛型列表为不稳定资源(原文:A resource manager can manage not only durable resources but volatile or in-memory resources - for example, a simple int and a generic list.)volatile resou

c++-求教简单C++ OOP题目 关于Log库的简易编写

问题描述 求教简单C++ OOP题目 关于Log库的简易编写 Log是用来对复杂程序进行调试的常用手段,用来实现log的库也是我们非常常用的程序 库之一.请你设计一个简化的log程序库,做到如下几点: a) 能够支持三种不同的log目的地(控制台.文件.数据库)及这三种目的地的自由 组合,目的地可以动态变化,未来可能需要加入更多种类的目的地(比如限制长度 的文件): b) 能够支持三种不同的log格式(简单不带任何附加信息,附带短格式表示的当前时 间,附带长格式表示的当前时间),格式可以动态变化

hdu 2084 数塔

http://acm.hdu.edu.cn/showproblem.php?pid=2084 每个数的dp值 7 10 15 18 16 15 20 25 20 19 24 30 27 26 24 这是经典的dp #include <iostream> #include <cstdio> #include <cstring> using namespace std; int data[105][105]; int dp[105][105];//记一下dp值 int ma

简单的汉诺塔问题解法代码_C 语言

以前学东西不扎实,现在捡捡也好,汉诺塔本是C语言开门就学的东西,不过上课那会儿真心听不懂,直到大二了,才明白那是咋回事,我感觉的编程,真的是一张窗户纸,不过捅破要花时间理解吸收. 题目描述:有一个塔,塔内有A,B,C三个柱子.起初,A柱上有n个盘子,依次由大到小.从下往上堆放,要求将它们全部移到C柱上:在移动过程中可以利用B柱,但每次只能移到一个盘子,且必须使三个柱子上始终保持大盘在下,小盘在上的状态.要求编程输出移动的步骤. 代码如下: 复制代码 代码如下: #include<stdio.h>

hdu2084数塔

经典问题了,题意我就不叙述了(题目是中文的~) 分析:dp[i][j]表示在第i行第j个位置上能取得的最大和,那么要从最后一行开始算起,到塔顶结束:dp[i][j] = a[i][j]+max(dp[i+1][j], dp[i+1][j+1]), 边界条件是dp[n][j] = a[n][j]; 代码: View Code 1 #include <stdio.h> 2 #include <iostream> 3 using namespace std; 4 #define DEBU

【DP专辑】ACM动态规划总结

转载请注明出处,谢谢.   http://blog.csdn.net/cc_again?viewmode=list          ----------  Accagain  2014年5月15日 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力.建模抽象能力.灵活度. 本人动态规划博客地址:http://blog.csdn.net/cc_again/article/category/1261899 ******************

acm 杭电-杭州电子科技大学 acm 第1001题

问题描述 杭州电子科技大学 acm 第1001题 题目的输入要求是The input will consist of a series of integers n one integer per line.输出要求是For each case output SUM(n) in one line followed by a blank line. You may assume the result will be in the range of 32-bit signed integer.我提交的