0分求助!!!
查看原帖
0分求助!!!
1278788
aojiaoluolisaiban楼主2024/3/23 20:52

利用差分记录重复次数,op代表次数要达到多少买卡才更好

#include <bits/stdc++.h>
using namespace std;
int N,M;
int city[1000005];
int olp[100005];
int op[100005];
int p[100005];
int A[100005];
int B[100005];
int C[100005];
int temp[100005];
int ans;
int main()
{
    cin >> N >> M;
    city[0] = 1;
    for(int i=1;i<=M;i++)
    {
        cin >> city[i];
            int a = min(city[i],city[i-1]);
            int b = max(city[i],city[i-1]);
            olp[a]++;
            olp[b]--;
    }
    for(int i=1;i<=N-1;i++)
    {
        cin >> A[i] >> B[i] >> C[i];
        op[i] = ceil(C[i]/(A[i]-B[i]));
    }
    for(int i=1;i<=N-1;i++)
    {
        temp[i] = temp[i-1]+olp[i];
        if(temp[i]>=op[i])
        {
            p[i] = C[i]+temp[i]*B[i];
        }
        else
        {
            p[i] = temp[i]*A[i];
        }
        ans+=p[i];
    }
    cout << ans;
    return 0;
}

自己做了几个测试数据没问题,但样例output是6794,求高人指点呀!!!!!

2024/3/23 20:52
加载中...