defd(x, y): l = int(format(x, 'b') + format(y, 'b'), 2) r = int(format(y, 'b') + format(x, 'b'), 2) return r - l sys.set_int_max_str_digits(1000000) n = int(input()) a = [i for i inrange(1, n + 1)] a.sort(key=cmp_to_key(d)) str = '' for i in a: str += format(i, 'b') print(int(str, 2))
nums = [0,2] # 长度为i的元素个数 cnt = 2 for i inrange(70): nums.append(cnt) cnt *= 2
bits = [0,2] # 长度为i一共多少位? for i inrange(2, 70): bits.append(nums[i] * i)
x = int(input()) ans = 0
deffind1(x, base, bit, ones, pre): global ans if x == 0: return # < 1numbers if x <= base: i = 0 while x > 0and i < len(pre): if pre[i] == '1': ans += 1 i += 1 x -= 1 return
l_bitzero = nums[bit + 1] * base // 2# ...0....的长度 if l_bitzero <= x: x -= l_bitzero ans += nums[bit] // 2 * (bit - 1) + 2 ** (bit - 1) * ones find1(x, base, bit - 1, ones + 1, pre + '1') # ...1.... else: find1(x, base, bit - 1, ones, pre + '0') # ...0....
deffind(x, base): global ans for i inrange(1, 70): if x - bits[i] >= 0: x -= bits[i] if i == 1: ans = 1 else: ans += 2 ** (i - 1) * (i - 1) // 2 + nums[i] else: find1(x, i, i - 1, 1, '1') break
if x == 1: print(0) elif x == 2: print(1) else: find(x, 0) print(ans)
sys.setrecursionlimit(1000000000) a = [] b = [] n, m = map(int, input().split()) vis = [[0for i inrange(m)] for j inrange(n)] for i inrange(n): a.append(list(map(int, input().split()))) vis.append([]) for j inrange(m): b.append([i, j, a[i][j]]) b.sort(key=lambda x: x[2], reverse=True) ans = 0
deffind(x, y, w): global ans ans += w vis[x][y] = 1 for i inrange(m): if vis[x][i] == 0and ((a[x][i] < a[x][y] and i > y) or (a[x][i] > a[x][y] and i < y)): find(x, i, w) for i inrange(n): if vis[i][y] == 0and ((a[i][y] < a[x][y] and i > x) or (a[i][y] > a[x][y] and i < x)): find(i, y, w)
for i in b: if vis[i[0]][i[1]] == 0: find(i[0], i[1], i[2])
n, m = map(int, input().split()) a = list(map(int, input().split())) b = list(map(int, input().split())) f = [[-1for i inrange(1010)] for j inrange(n)] f[0][a[0]] = 0 for i inrange(a[0]): f[0][i] = 1 for i inrange(1, n): for j inrange(a[i] + 1): best = 1 if j == a[i]: best = 0 for k in b: if f[i][j] == best: break cur = -1 if j - k > 0and f[i - 1][j - k] != -1: cur = f[i - 1][j - k] if j + k <= a[i - 1] and f[i - 1][j + k] != -1: if cur == -1: cur = f[i - 1][j + k] else: cur = min(cur, f[i - 1][j + k]) if cur == -1: continue if j != a[i]: cur += 1 if f[i][j] == -1: f[i][j] = cur else: f[i][j] = min(f[i][j], cur) ans = -1 for i inrange(a[i] + 1): if f[n - 1][i] != -1: if ans == -1: ans = f[n - 1][i] else: ans = min(ans, f[n - 1][i]) print(ans)