[模拟] aw3771. 选取石子(脑筋急转弯+aw周赛008_2)

Posted Ypuyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[模拟] aw3771. 选取石子(脑筋急转弯+aw周赛008_2)相关的知识,希望对你有一定的参考价值。

1. 题目来源

链接:3771. 选取石子

2. 题目解析

模拟题。

简单对公式做变换 x-ax=y-ay=z-az=... 所以当值减去下标后为相同的数会被分成同组,哈希表记录即可。


时间复杂度: O ( n ) O(n) O(n)

空间复杂度: O ( n ) O(n) O(n)


#include <bits/stdc++.h>

using namespace std;

typedef long long LL;

int n;
unordered_map<int, LL> h;

int main() {
    cin >> n;
    for (int i = 1; i <= n; i ++ ) {
        int x;
        cin >> x;
        h[x - i] += x;
    }
    
    LL res = 0;
    for (auto &[k, v] : h) res = max(res, v);
    
    cout << res << endl;
    
    return 0;
}


以上是关于[模拟] aw3771. 选取石子(脑筋急转弯+aw周赛008_2)的主要内容,如果未能解决你的问题,请参考以下文章

[思维] aw3577. 选择数字(思维+脑筋急转弯+aw周赛009_1)

[思维] aw3789. 隐藏字符串(脑筋急转弯+枚举+递推+aw周赛010_3)

[构造] aw3731. 序列凑零(模拟+构造)

一行代码就能解决的算法题

跪求脑筋急转弯、智力题(要附答案的)

598. 范围求和 II思维 脑筋急转弯