首先
(0,1,k)
是个解
然后用主元法
a2−k(b+c)a+b2+c2–kbc−1=0
可得如果
(a,b,c)
为解,那么
(k(b+c)−a,b,c)
也为方程的解
直接大力bfs
其实你需要高超的高精度技巧
Python大法好
第一次知道原来set跑的这么快
from sys import stdin
def Ins(a,b,c):
d=K*(b+c)-a
if d>=0: newQ.add(tuple(sorted([d,b,c])))
K,n=[int(tmp) for tmp in stdin.readline().split(' ')]
Set=set([0])
Q=set([tuple(sorted([0,1,K]))])
while n>0:
newQ=Q.copy()
for (a,b,c) in Q:
if (a not in Set) and (b not in Set) and (c not in Set) and a!=b and b!=c and a!=c:
Set.add(a)
Set.add(b)
Set.add(c)
print(a,b,c)
n=n-1
if n==0: break
Ins(a,b,c)
Ins(b,a,c)
Ins(c,a,b)
Q=newQ