7 条题解
-
1
快速幂也能写 #include <iostream> #define ll long long using namespace std; ll c[1000]; int main(){ ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); c[1] = 1; int cnt = 1; for(int i = 1 ; i <= 63 ; i++){ ll x = 2,b = i,ans = 1; while(b){ if(b % 2){ ans *= x; } x *= x; b /= 2; } c[++cnt] = ans; } int n; cin >> n; for(int i = 1 ; i <= n ; i++){ ll x; cin >> x; int l = 1,r = 63; while(l < r){ int mid = (l + r) / 2; if(c[mid] >= x){ r = mid; } else l = mid + 1; } if(c[l] == x){ cout << "YES" << '\n'; } else cout << "NO" << '\n'; } return 0; }
信息
- ID
- 58
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 4501
- 已通过
- 497
- 上传者