csp-j第二题road改错 P9749
  • 板块学术版
  • 楼主ljcnoi
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/11/7 12:12
  • 上次更新2023/11/7 15:53:29
查看原帖
csp-j第二题road改错 P9749
1176197
ljcnoi楼主2023/11/7 12:12

各位大神,我的前八个点都是AC,但后面的点报了RE和WA,请问是因为什么原因报的RE,要怎么改?

#include<bits/stdc++.h>
using namespace std;
struct jyzn
{
    int yj;
    int bh;
};
jyzn jyz[100100];
int n,d,nj[100100],yjjj[100100];
double yhf[100100];
long long int mony=0;
double yxx=0;
bool bjhs(jyzn jyza,jyzn jyzb)
{
    if(jyzb.yj<jyza.yj)
    {
        return false;
    }
    else
    {
        return true;
    }
}
int qzhs(double ljc1)
{
    int ljc2=int(ljc1);
    if(ljc2==ljc1)
    {
        return ljc2;
    }
    else
    {
        return ljc2-1;
    }
}
int main()
{
    cin>>n>>d;
    int nj;
    for(int i=1;i<n;i++)
    {
        scanf("%d",&nj);
        yhf[i]=nj*1.0/d;
    }
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&jyz[i].yj);
        jyz[i].bh=i;
        yjjj[i]=jyz[i].yj;
    }
    sort(jyz+1,jyz+n+1,bjhs);
    int tld[100100],tldn=0;
    jyzn jyzjl;
    jyzjl.bh=n;
    tld[0]=n;
    for(int i=1;i<=n;i++)
    {
        if(jyz[i].bh<jyzjl.bh)
        {
            tldn++;
            tld[tldn]=jyz[i].bh;
            jyzjl.bh=jyz[i].bh;
        }
    }
    int dw=1;
    for(int i=tldn;i>=0;i--)
    {
        double aa=0;
        for(int j=dw;j<tld[i];j++)
        {
            aa=aa+yhf[j];
        };
        yxx=yxx-aa;
        int qz=qzhs(yxx);
        qz=-qz;
        mony=mony+qz*yjjj[dw];
        yxx=yxx+qz;
        dw=tld[i];
    }
    cout<<mony<<endl;
    return 0;
}
2023/11/7 12:12
加载中...