AC了,但疑惑:为什么按题解的打wa了?
#include<bits/stdc++.h> using namespace std; int a[1000002]; int main() { int n,e; cin>>n; a[1]=0; for (int i=1;i<=n;i++) { if (i==1) a[i]=0; else a[i]=min(a[i/2]+1,a[i-1]+1); } cout<<a[n]; return 0; }