编号 题目 状态 分数 总时间 内存 代码 / 答案文件 提交者 提交时间
#24204 #1121. jwp的幸运集合(弱化版) Accepted 100 29 ms 384 K C++ / 1.5 K 十三月 2020-04-16 19:37:32
显示原始代码
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#include <set>
#include <map>
#include <sstream>
using namespace std;
struct oj {
    int x;
    int y;
};

int main() {
    map<long long, oj> tong;
    long long sum, a, b, c;
    int n, ans = 0, m;
    cin >> n;
    long long *list = new long long[n];
    for (long long i = 0; i < n; i++) {
        cin >> list[i];
    }
    a = pow(2, n / 2);
    b = pow(2, n / 2 + 1);
    for (long long i = 0; i < a; i++) {
        sum = 0;
        m = 0;
        for (long long j = 0; j < n / 2; j++) {
            if (i & (1 << j)) {
                sum += list[j];
                m++;
            }
        }
        if (!tong.count(sum))
            tong[sum].x = tong[sum].y = 0;
        if (m % 2 == 0)
            tong[sum].y++;
        tong[sum].x++;
    }
    c = a;
    if (n % 2 != 0)
        c = b;
    for (long long i = 0; i < c; i++) {
        sum = 0;
        m = 0;
        for (long long j = 0; j < n - n / 2; j++) {
            if (i & (1 << j)) {
                sum += list[j + n / 2];
                m++;
            }
        }
        if (!tong.count(-sum))
            tong[-sum].x = 0;
        if (m % 2 == 0)
            ans += tong[-sum].y;
        else
            ans += tong[-sum].x - tong[-sum].y;
    }
    cout << ans - 1;
    return 0;
}
子任务 #1
Accepted
得分:100
测试点 #1
Accepted
得分:100
用时:3 ms
内存:252 KiB

输入文件(1.in

7
50000000 -50000000 50000000 -50000000 50000000 -50000000 50000000 

答案文件(1.ans

34

用户输出

34

系统信息

Exited with return code 0
测试点 #2
Accepted
得分:100
用时:3 ms
内存:384 KiB

输入文件(2.in

8
50000000 -50000000 50000000 -50000000 50000000 -50000000 50000000 -50000000 

答案文件(2.ans

69

用户输出

69

系统信息

Exited with return code 0
测试点 #3
Accepted
得分:100
用时:3 ms
内存:240 KiB

输入文件(3.in

1
50000000 

答案文件(3.ans

0

用户输出

0

系统信息

Exited with return code 0
测试点 #4
Accepted
得分:100
用时:4 ms
内存:236 KiB

输入文件(4.in

20
50000000 -50000000 50000000 -50000000 50000000 -50000000 50000000 -50000000 50000000 -50000000 50
<93 bytes omitted>

答案文件(4.ans

184755

用户输出

184755

系统信息

Exited with return code 0
测试点 #5
Accepted
得分:100
用时:2 ms
内存:232 KiB

输入文件(5.in

3
5 -4 -1

答案文件(5.ans

0

用户输出

0

系统信息

Exited with return code 0
测试点 #6
Accepted
得分:100
用时:3 ms
内存:348 KiB

输入文件(6.in

1
0

答案文件(6.ans

0

用户输出

0

系统信息

Exited with return code 0
测试点 #7
Accepted
得分:100
用时:2 ms
内存:284 KiB

输入文件(7.in

6
4 2 2 -2 0 -2

答案文件(7.ans

6

用户输出

6

系统信息

Exited with return code 0
测试点 #8
Accepted
得分:100
用时:3 ms
内存:264 KiB

输入文件(8.in

20
50000000 50000000 50000000 50000000 50000000 50000000 50000000 50000000 50000000 50000000 5000000
<82 bytes omitted>

答案文件(8.ans

0

用户输出

0

系统信息

Exited with return code 0
测试点 #9
Accepted
得分:100
用时:3 ms
内存:260 KiB

输入文件(9.in

18
0 0 -1 -1 2 2 -4 -4 8 8 -16 -16 32 32 -64 128 -256 128 

答案文件(9.ans

255

用户输出

255

系统信息

Exited with return code 0
测试点 #10
Accepted
得分:100
用时:3 ms
内存:352 KiB

输入文件(10.in

20
0 0 1 1 -2 -2 -2 -2 4 4 8 8 -56 -56 16 16 16 2 2 1 1

答案文件(10.ans

3235

用户输出

3235

系统信息

Exited with return code 0