ZOJ-2520
第一次用打表過的。。這題要5秒過的話用暴力枚舉必超時。。網上說K最大就21,我的Python光打21個值就花了半個小時。。ORZ,如果有大牛可以5s不打表過的話,表示五體投地
打表代碼:
def factor(num):if num == 1:return []for i in range(2, num + 1):if num % i == 0:res = factor(num / i)res.append(i);return resdef all_factor(factors):n = len(factors)s = set()for i in range(0, 2 ** n - 1):res = 1for j in range(0, n):if i & (2 ** j) == (2 ** j):res *= factors[j]s.add(res)return sum(s)for num in range(2, 200000):pair = all_factor(factor(num))if(all_factor(factor(pair)) == num and num < pair):print 'r.append([' + str(num) + ',' + str(pair) + '])'AC代碼 import sys r = [] r.append([220, 284]) r.append([1184, 1210]) r.append([2620, 2924]) r.append([5020, 5564]) r.append([6232, 6368]) r.append([10744, 10856]) r.append([12285, 14595]) r.append([17296, 18416]) r.append([63020, 76084]) r.append([66928, 66992]) r.append([67095, 71145]) r.append([69615, 87633]) r.append([79750, 88730]) r.append([100485, 124155]) r.append([122265, 139815]) r.append([122368, 123152]) r.append([141664, 153176]) r.append([142310, 168730]) r.append([171856, 176336]) r.append([176272, 180848]) r.append([185368, 203432]) for line in sys.stdin:index = int(line.strip()) - 1print r[index][0], r[index][1]
總結
- 上一篇: 数据降维之PCA(主成分分析)
- 下一篇: 利用NetworkManager来调整I