제출 #795765

#제출 시각아이디문제언어결과실행 시간메모리
795765alexander707070Packing Biscuits (IOI20_biscuits)C++14
0 / 100
1079 ms340 KiB
#include<bits/stdc++.h> #pragma GCC optimize ("O3") #pragma GCC target ("sse4") using namespace std; const long long mod=1e9+7; long long x,sum; int k; vector<long long> br,toadd; unordered_map<long long,long long> dp; long long brute(int bit,long long total,int pos,vector<long long> br){ if(bit==-1)return 1; long long hesh=(total%mod)*100+bit; //if(dp[hesh]>0)return dp[hesh]; long long curr=br[bit]; total-=curr*(1LL<<bit); br[bit]=0; long long res=brute(bit-1,total,pos,br); total+=curr*(1LL<<bit); br[bit]=curr; curr=x; if(total>=x*(1LL<<bit)){ total-=x*(1LL<<bit); for(int i=bit;i>=0;i--){ if(br[i]>=curr){ br[i]-=curr; curr=0; pos=i; break; }else{ curr-=br[i]; br[i]=0; curr*=2; pos=i-1; } } total-=br[bit]*(1LL<<bit); br[bit]=0; res+=brute(bit-1,total,pos,br); } //dp[hesh]=res; return res; } long long count_tastiness(long long X,vector<long long> A){ k=int(A.size()); x=X; sum=0; dp.clear(); br.resize(62); toadd.resize(62); for(int i=0;i<k;i++){ br[i]=A[i]; sum+=br[i]*(1LL<<i); } return brute(61,sum,61,br); } /* int main(){ cout<<count_tastiness(2, {2, 1, 2})<<"\n"; cout<<count_tastiness(2, {2, 1, 2})<<"\n"; } */

컴파일 시 표준 에러 (stderr) 메시지

biscuits.cpp: In function 'long long int brute(int, long long int, int, std::vector<long long int>)':
biscuits.cpp:17:15: warning: unused variable 'hesh' [-Wunused-variable]
   17 |     long long hesh=(total%mod)*100+bit;
      |               ^~~~
#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...