[思维] aw3779. 相等的和(思维+构造+题意理解+aw周赛009_2)

Posted Ypuyu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[思维] aw3779. 相等的和(思维+构造+题意理解+aw周赛009_2)相关的知识,希望对你有一定的参考价值。

1. 题目来源

链接:3779. 相等的和

2. 题目解析

读题,理解题意。


任意两序列,任减一个值,保证两序列其余总和一致。

那么可以枚举每个序列中的每个元素被删减后,其剩余元素和是多少,用哈希表维护即可。 若剩余元素和相同,并且是两个不同序列的话,即找到一个答案,返回即可。


本题关键还是思路,要想到枚举每个元素删减的结果,并用哈希表维护剩余的元素和。


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

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


#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> PII;
#define x first
#define y second

const int N = 2e5+5;

int n;
int w[N];

int main() {
    cin >> n;
    unordered_map<int, PII> mp;
    for (int i = 1; i <= n; i ++ ) {
        int len; cin >> len;
        int sum = 0;
        for (int j = 1; j <= len; j ++ ) cin >> w[j], sum += w[j];
        for (int j = 1; j <= len; j ++ ) {
            int s = sum - w[j];
            if (mp.count(s) && mp[s].x != i) {
                printf("YES\\n%d %d\\n%d %d\\n", mp[s].x, mp[s].y, i, j);
                return 0;
            }
            mp[sum - w[j]] = {i, j};
        }
    }
    puts("NO");
    
    return 0;
}

以上是关于[思维] aw3779. 相等的和(思维+构造+题意理解+aw周赛009_2)的主要内容,如果未能解决你的问题,请参考以下文章

[构造] aw3679. 素数矩阵(构造+思维)

[dfs] aw167. 木棒(dfs剪枝与优化+分类讨论+思维+好题)

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

[构造] aw3762. 二进制矩阵(困难模拟+分类讨论+简化代码+思维)

Acwing第 9 场周赛未完结

[构造] aw3672. 数组重排(构造+推公式+思维)