[极简] CF1661B 题解
请看完后点个赞,谢谢
CF1661B
因为+1肯定在*2前面,所以直接枚举+1的次数就行了
所以+1最少0次,最多15次
代码如下
//CF1661B 22-04-10#include using namespace std;int n,a[32800];int main() {ios::sync_with_stdio(0);cin.tie(0);cin>>n;for (int i=1;i>a[i];for (int j=1;j<=n;j++){int mins=16;for (int i=0;i<=15;i++){int t=a[j],s=0;t+=i;s+=i;t%=32768;if (t==0 && s<mins) mins=s; for (int k=0;k<=15-i;k++){t*=2;t%=32768;s++;if (t==0) break;}if (s<mins) mins=s;}cout<<mins<<" ";}return 0;}