Submission #2150810
Source Code Expand
#include <bits/stdc++.h> using namespace std; using VS = vector<string>; using LL = long long; using VI = vector<int>; using VVI = vector<VI>; using PII = pair<int, int>; using PLL = pair<LL, LL>; using VL = vector<LL>; using VVL = vector<VL>; #define ALL(a) begin((a)),end((a)) #define RALL(a) (a).rbegin(), (a).rend() #define PB push_back #define EB emplace_back #define MP make_pair #define SZ(a) int((a).size()) #define SORT(c) sort(ALL((c))) #define RSORT(c) sort(RALL((c))) #define UNIQ(c) (c).erase(unique(ALL((c))), end((c))) #define FOR(i, s, e) for (int(i) = (s); (i) < (e); (i)++) #define FORR(i, s, e) for (int(i) = (s); (i) > (e); (i)--) #define debug(x) cerr << #x << ": " << x << endl const int INF = 1e9; const LL LINF = 1e16; const LL MOD = 1000000007; const double PI = acos(-1.0); int DX[8] = { 0, 0, 1, -1, 1, 1, -1, -1 }; int DY[8] = { 1, -1, 0, 0, 1, -1, 1, -1 }; /* ----- 2018/03/03 Problem: code-thanks-festival-2017_f / Link: https://code-thanks-festival-2017.contest.atcoder.jp/tasks/code_thanks_festival_2017_f?lang=en ----- */ /* ------問題------ N 個の正の整数が与えられ、i(1≦i≦N) 番目の正の整数は ai です。 N 個の整数のうち 0 個以上を選んで、選んだ全ての整数のビットごとの排他的論理和を計算します。 計算結果が K となるような整数の選び方の個数を 10^9+7 で割った余りを求めてください。 ただし、0 個選んだときのビットごとの排他的論理和は 0 とします。 -----問題ここまで----- */ /* -----解説等----- 状態が少ないかなあという気持ちでmap上のDPをすると通った ↓解説に書いてあったこと 1.sortして無駄な部分をへらして上界をあげながらDP これはたぶんmapと同じ 2. Xorの性質から重複する値をまとめて計算するDP 偶数個選ぶか奇数個選ぶかの選択になり、DPの係数が2のべき乗になる (組合せと二項定理の母関数から奇数と偶数の選択和は2のべき乗[高校数学]) これでDPを dp[i][j]: b1, …, bi から、XOR が j となる整数の選び方の個数 とすればよい ----解説ここまで---- */ LL N, K; LL ans = 0LL; int main() { cin.tie(0); ios_base::sync_with_stdio(false); cin >> N >> K; map<int, LL>Map; VI a(N); SORT(a); FOR(i, 0, N) { cin >> a[i]; } Map[0] = 1; FOR(i, 0, N) { map<int, LL>Nx; for (auto m : Map) { int mask = m.first; LL cmb = m.second; (Nx[mask]+=cmb) %= MOD; (Nx[mask^a[i]]+=cmb) %= MOD; } Map = Nx; } ans = Map[K]; cout << ans << "\n"; return 0; }
Submission Info
Submission Time | |
---|---|
Task | C - Time Gap |
User | vjudge5 |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 2690 Byte |
Status | WA |
Exec Time | 1 ms |
Memory | 256 KB |
Judge Result
Set Name | sample | All | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 0 / 500 | ||||||||
Status |
|
|
Set Name | Test Cases |
---|---|
sample | sample-01.txt, sample-02.txt, sample-03.txt |
All | sample-01.txt, sample-02.txt, sample-03.txt, 01-01.txt, 01-02.txt, 01-03.txt, 01-04.txt, 01-05.txt, 01-06.txt, 01-07.txt, 01-08.txt, 01-09.txt, 01-10.txt, 01-11.txt, 01-12.txt, 01-13.txt, 01-14.txt, 01-15.txt, 01-16.txt, 01-17.txt, 01-18.txt, 01-19.txt, 01-20.txt, 01-21.txt, 01-22.txt, 01-23.txt, 01-24.txt, 01-25.txt, 01-26.txt, 01-27.txt, 01-28.txt, 01-29.txt, 01-30.txt, 01-31.txt, 01-32.txt, 01-33.txt, 01-34.txt, 01-35.txt, 01-36.txt, 01-37.txt, 01-38.txt, 01-39.txt, 01-40.txt, 01-41.txt, 01-42.txt, 01-43.txt, sample-01.txt, sample-02.txt, sample-03.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
01-01.txt | WA | 1 ms | 256 KB |
01-02.txt | WA | 1 ms | 256 KB |
01-03.txt | WA | 1 ms | 256 KB |
01-04.txt | AC | 1 ms | 256 KB |
01-05.txt | WA | 1 ms | 256 KB |
01-06.txt | WA | 1 ms | 256 KB |
01-07.txt | WA | 1 ms | 256 KB |
01-08.txt | WA | 1 ms | 256 KB |
01-09.txt | WA | 1 ms | 256 KB |
01-10.txt | WA | 1 ms | 256 KB |
01-11.txt | WA | 1 ms | 256 KB |
01-12.txt | WA | 1 ms | 256 KB |
01-13.txt | WA | 1 ms | 256 KB |
01-14.txt | WA | 1 ms | 256 KB |
01-15.txt | WA | 1 ms | 256 KB |
01-16.txt | WA | 1 ms | 256 KB |
01-17.txt | WA | 1 ms | 256 KB |
01-18.txt | WA | 1 ms | 256 KB |
01-19.txt | WA | 1 ms | 256 KB |
01-20.txt | WA | 1 ms | 256 KB |
01-21.txt | WA | 1 ms | 256 KB |
01-22.txt | WA | 1 ms | 256 KB |
01-23.txt | WA | 1 ms | 256 KB |
01-24.txt | WA | 1 ms | 256 KB |
01-25.txt | WA | 1 ms | 256 KB |
01-26.txt | AC | 1 ms | 256 KB |
01-27.txt | WA | 1 ms | 256 KB |
01-28.txt | WA | 1 ms | 256 KB |
01-29.txt | WA | 1 ms | 256 KB |
01-30.txt | WA | 1 ms | 256 KB |
01-31.txt | WA | 1 ms | 256 KB |
01-32.txt | WA | 1 ms | 256 KB |
01-33.txt | WA | 1 ms | 256 KB |
01-34.txt | WA | 1 ms | 256 KB |
01-35.txt | WA | 1 ms | 256 KB |
01-36.txt | WA | 1 ms | 256 KB |
01-37.txt | WA | 1 ms | 256 KB |
01-38.txt | WA | 1 ms | 256 KB |
01-39.txt | WA | 1 ms | 256 KB |
01-40.txt | WA | 1 ms | 256 KB |
01-41.txt | WA | 1 ms | 256 KB |
01-42.txt | WA | 1 ms | 256 KB |
01-43.txt | WA | 1 ms | 256 KB |
sample-01.txt | WA | 1 ms | 256 KB |
sample-02.txt | AC | 1 ms | 256 KB |
sample-03.txt | WA | 1 ms | 256 KB |