Codeforces 1321 B. Journey Planning

Codeforces 1321 B. Journey Planning_第1张图片

题意:

给出 n n n 个城市的满意度,要求选取部分城市使得获得的满意度最大。选取的要求满足
c i + 1 − c i = b i + 1 − b i c_{i+1}-c_i=b_{i+1}-b_i ci+1ci=bi+1bi,移项可得: c i + 1 − b i + 1 = c i − b i c_{i+1}-b_{i+1}=c_{i}-b_i ci+1bi+1=cibi
然后再输入的时候直接记录一下,然后遍历最大值,这里需要用map,用数组的话会下标越界。

AC代码:

const int N = 4e5 + 10;
const int inf = 0x7ffffff;
int n, m;
int res, tmp;
ll cnt[N];
int b[N];
int main()
{
    sd(n);
    mem(cnt,0);
    ll ans = 0;
    rep(i, 1, n)
    {
        sd(b[i]);
        cnt[b[i] - i] += b[i];
        ans = max(ans, cnt[b[i] - i]);
    }
    pld(ans);
    return 0;
}

你可能感兴趣的:(CodeForces)