Codeforces 1321 B. Journey Planning

在这里插入图片描述

题意:

给出 n n 个城市的满意度,要求选取部分城市使得获得的满意度最大。选取的要求满足
c i + 1 c i = b i + 1 b i c_{i+1}-c_i=b_{i+1}-b_i ,移项可得: c i + 1 b i + 1 = c i b i c_{i+1}-b_{i+1}=c_{i}-b_i
然后再输入的时候直接记录一下,然后遍历最大值,这里需要用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;
}
发布了704 篇原创文章 · 获赞 420 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_43627087/article/details/104611488