✊
No.3041 非対称じゃんけん Yukicoder
問題:https://yukicoder.me/problems/no/3041
解説のc++の想定解法が(私には)難しかったので、Pythonの想定解法のようにできないかと思いstd::bitsetを利用してACしました。
#pragma GCC optimize("O3")
typedef long long ll;
typedef long double ld;
#include <bits/stdc++.h>
using namespace std;
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
ll n, f;
cin >> n >> f;
vector<ll> a(n), b(n), c(n);
for (ll i = 0; i < n; i++) {
cin >> a[i];
}
for (ll i = 0; i < n; i++) {
cin >> b[i];
}
for (ll i = 0; i < n; i++) {
cin >> c[i];
}
auto cur = bitset<900001>(1);
for (ll i = 0; i < n; i++) {
cur = cur << a[i] | cur << b[i] | cur << c[i];
cout << cur.count() << '\n';
}
}
ただし、TLEを避けるためには#pragma GCC optimize("O3")
を追加する必要がありました。
TLEとなった提出
bitsetの利用で十分高速化されていると思いましたが、よくわかりません。ゴリ押しかもしれません。
Discussion