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; }
-
0
Python 打表
利用set查找功能+打表,平时别用,考试优选
a={1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, 2097152, 4194304, 8388608, 16777216, 33554432, 67108864, 134217728, 268435456, 536870912, 1073741824, 2147483648, 4294967296, 8589934592, 17179869184, 34359738368, 68719476736, 137438953472, 274877906944, 549755813888, 1099511627776, 2199023255552, 4398046511104, 8796093022208, 17592186044416, 35184372088832, 70368744177664, 140737488355328, 281474976710656, 562949953421312, 1125899906842624, 2251799813685248, 4503599627370496, 9007199254740992, 18014398509481984, 36028797018963968, 72057594037927936, 144115188075855872, 288230376151711744, 576460752303423488, 1152921504606846976, 2305843009213693952, 4611686018427387904, 9223372036854775808, 18446744073709551616} m=int(input()) for _ in range(m): x=int(input()) if x in a: print('YES') else: print('NO')
- 1
信息
- ID
- 58
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 9
- 标签
- (无)
- 递交数
- 4501
- 已通过
- 497
- 上传者