제출 #1320106

#제출 시각아이디문제언어결과실행 시간메모리
1320106nicolo_010비스킷 담기 (IOI20_biscuits)C++20
100 / 100
48 ms952 KiB
#include <bits/stdc++.h> #include "biscuits.h" using namespace std; using ll = long long; using pii = pair<int, int>; const int mX = 1e5+5; map<ll, ll> memo; ll x; vector<ll> a; vector<ll> s; ll f(ll n) { if (n<=0) return 0; if (n==1) return 1; if (memo.count(n)) return memo[n]; ll i = __lg(n-1); ll caso1 = f((1ll)<<(i)); ll caso2 = f(min(n, 1+(s[i]/x))-((1ll)<<i)); return memo[n] = caso1+caso2; } const ll INF = 1e18+5; ll count_tastiness(ll X, vector<ll> A) { x = X, a = A; int k = a.size(); s.assign(k, 0); s[0] = a[0]; for (int i=1; i<k; i++) { s[i] = s[i-1] + a[i]*((1ll)<<i); } while (s.size()<61) s.push_back(s.back()); ll ans = f(1+s.back()); memo.clear(); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...