1 条题解

  • 0
    @ 2025-5-14 9:18:49
    #include <bits/stdc++.h>
    using namespace std;
    
    typedef long long ll;
    ll n, m, p[100005], a[100005], b[100005], c[100005];
    ll d[100005], cnt[100005];
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0);
        cin >> n >> m;
        for (int i = 1; i <= m; i++)
        {
            cin >> a[i];
        }
        for (int i = 1; i < m; i++)
        {
            if (a[i] <= a[i + 1])
            {
                d[a[i]]++;
                d[a[i + 1]]--;
            }
            else
            {
                d[a[i + 1]]++;
                d[a[i]]--;
            }
        }
        for (int i = 1; i <= n - 1; i++)
        {
            cnt[i] = cnt[i - 1] + d[i];
        }
        ll ans = 0;
        for (int i = 1; i <= n - 1; i++)
        {
            cin >> a[i] >> b[i] >> c[i];
            ans += min(a[i] * cnt[i], b[i] * cnt[i] + c[i]);
        }
        cout << ans << endl;
        return 0;
    }
    
    
    • 1

    信息

    ID
    3977
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    2
    已通过
    2
    上传者