首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spoj ACPC10D -Why我得到了错误的答案?

spoj ACPC10D -Why我得到了错误的答案?
EN

Stack Overflow用户
提问于 2015-12-24 22:13:45
回答 1查看 102关注 0票数 1

下面是我的代码.It正在通过问题语句中给出的测试用例。问题链接:http://www.spoj.com/problems/ACPC10D/ trii存储从tri到达索引(i,j)的最小值。

代码语言:javascript
复制
 //trigraphs-dp
#include<iostream>
#include<limits.h>
using namespace std;
int tri[1000000][3];
int min(int a,int b)
{
if(a<=b)
return a;

else
return b;
}

int main()
{
int n,t=1;
while(cin>>n)
{

    if(n==0)
    break;
    for(int i=0;i<n;i++)
    for(int j=0;j<3;j++)
    cin>>tri[i][j];

    tri[0][0]=INT_MAX;

    tri[0][2]=tri[0][1]+tri[0][2];
    //cout<<tri[0][2];

    int a,b,c,d;
    for(int i=1;i<n;i++)
    for(int j=0;j<3;j++)
    {
        a=tri[i-1][j];
        b=(j==2)?INT_MAX:tri[i-1][j+1];
        c=(j==0)?INT_MAX:tri[i-1][j-1];
        d=(j==0)?INT_MAX:tri[i][j-1];

        tri[i][j]+=min(min(a,b),min(c,d));
   }

   cout<<t<<". "<<tri[n-1][1]<<"\n";

    }

 return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2015-12-27 15:02:57

1-您忘记在循环末尾增加t

2-将tri定义为long long类型,因为当您将数字相加时可能会溢出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34454092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档