제출 #1225982

#제출 시각아이디문제언어결과실행 시간메모리
1225982PVM_pvm비스킷 담기 (IOI20_biscuits)C++20
42 / 100
1098 ms49992 KiB
#include "biscuits.h" #include<bits/stdc++.h> using namespace std; #define MAXK 60 unordered_map<long long, long long> un[MAXK]; long long xx; vector<long long> ms(MAXK); long long f(int bit, long long klk) { if (bit==MAXK-1) { if (klk>=xx) return 2; return 1; } auto tyrs=un[bit].find(klk); if (tyrs!=un[bit].end()) { //cout<<tyrs->first<<" "<<tyrs->second<<" "<<klk<<"\n"; return tyrs->second;} if (klk<xx) { long long cur=f(bit+1,ms[bit+1]+(klk/2)); un[bit][klk]=cur; return cur; } long long cur=f(bit+1,ms[bit+1]+(klk/2))+f(bit+1,ms[bit+1]+((klk-xx)/2)); un[bit][klk]=cur; //cout<<bit<<" "<<klk<<" "<<cur<<"\n"; return cur; } long long count_tastiness(long long x, vector<long long> a) { for (int q=0;q<MAXK;q++) ms[q]=0; for (int q=0;q<a.size();q++) ms[q]=a[q]; xx=x; for (int q=0;q<MAXK;q++) un[q].clear(); return f(0,a[0]); }
#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...