abc340的c题
map用于离散化。这一篇写的比较好
#include<bits/stdc++.h>
using namespace std;
using ll =long long;
ll n,ans; map<ll,ll>dp;
ll solved(ll n)
{
if(n>=2)
{
if(dp.count(n)) return dp[n];
return dp[n]=n+solved(n/2)+solved((n+1)/2);
}
else
{
return 0;;
}
}
int main()
{
cin>>n;
solved(n);
cout<<dp[n];
}