题意:
给出
个城市的满意度,要求选取部分城市使得获得的满意度最大。选取的要求满足
,移项可得:
,
然后再输入的时候直接记录一下,然后遍历最大值,这里需要用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;
}