洛谷RE,CODEV和本地AC,请问是什么原因

P1064 [NOIP2006 提高组] 金明的预算方案

oscar123 @ 2016-11-12 20:22:54

请问这种问题会不会可能影响NOIP考试,请问神犇们我有没有犯什么被高版本编译器容错的问题,谢谢

#include <iostream>
#include <cstdio>
using namespace std;
bool is[32001][61][61];
int f[32001][61];
struct item{
    int v,p,q;
}a[700];
int main()
{
    int n=0,m=0;
    //freopen("1.txt","r",stdin);
    cin>>m>>n;
    for (int i=1;i<=n;i++)
        cin>>a[i].v>>a[i].p>>a[i].q;
    for (int i=1;i<=n;i++)
    {
        for (int j=m;j>=0;j--)
        {
            if (is[j][i-1][a[i].q]==true || a[i].q==0 && j+a[i].v<=m)
            {
                if (f[j+a[i].v][i]<f[j][i-1]+a[i].v*a[i].p)
                {
                    f[j+a[i].v][i]=f[j][i-1]+a[i].v*a[i].p;
                    for (int k=1;k<=i-1;k++)
                    {
                        is[j+a[i].v][i][k]=is[j][i-1][k];
                    }
                    is[j+a[i].v][i][i]=true;
                }
            }
            else if (j+a[i].v+a[a[i].q].v<=m)
            {
                if (f[j+a[i].v+a[a[i].q].v][i]<f[j][i-1]+a[i].v*a[i].p+a[a[i].q].v*a[a[i].q].p)
                {
                    f[j+a[i].v+a[a[i].q].v][i]=f[j][i-1]+a[i].v*a[i].p+a[a[i].q].v*a[a[i].q].p;
                    for (int k=1;k<=i-1;k++)
                    {
                        is[j+a[i].v+a[a[i].q].v][i][k]=is[j][i-1][k];
                    }
                    is[j+a[i].v+a[a[i].q].v][i][i]=true;
                    is[j+a[i].v+a[a[i].q].v][i][a[i].q]=true;
                }
            }
            if (f[j][i]<f[j][i-1])
            {
                f[j][i]=f[j][i-1];
                for (int k=1;k<=i-1;k++)
                    is[j][i][k]=is[j][i-1][k];
            }
        }
    }
    int answer=0;
    for (int i=1;i<=m;i++)
    answer=max(f[i][n],answer);
    cout<<answer;
} 

by DSrush @ 2016-11-12 20:44:12

你的return 0;去哪里了


by deoplljj @ 2016-11-12 20:58:47

楼上正解。没有return 0 NOIP也过不了的


by oscar123 @ 2016-11-12 21:02:10

还是不过啊,ps:我考去年NOIP不加return 0也能过的啊,我在洛谷上测其他题也是行的啊


by 浮生若梦丶 @ 2016-11-13 19:20:16

洛谷好像禁止在for循环中直接定义循环变量来使用。

楼主试下把for (int i=1;i<=m;i++)的int i提出来单独写,不影响noip的。


by Just_do_it @ 2016-11-15 08:15:47

for循环中直接定义是可以的,只要你选的是c++语言。(不要用自动识别语言……)


by yyd0928 @ 2017-01-03 12:10:35

我也一样


by cstdio @ 2017-02-09 10:26:02

哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈


|