> 文档中心 > [极简] CF1661B 题解

[极简] CF1661B 题解

请看完后点个赞,谢谢

​​​​​​​CF1661B​​​​​​​

因为+1肯定在*2前面,所以直接枚举+1的次数就行了

*2最多15次,因为模的是32768(2的15次方

所以+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;}