[CERC2016] Easy Equations
Rainbow_qwq · · 题解
初见这个方程并无想法,但是通过打表观察发现,如果有一组解
若有解
这是二次方程组,通过韦达定理,得到
又由于
同样通过打表观察得到有一组解
使用 bfs 扩展和 set 判重,就可以
k,n = map(int,input().split())
s = {0}
hd = 0
q = [(1,k,k*(k+1))]
while 1:
a,b,c = q[hd]
#print(a,b,c)
if a<0 or b<0 or c<0:
break
hd = hd + 1
if a not in s and b not in s and c not in s:
print(a,b,c)
s.add(a)
s.add(b)
s.add(c)
n = n - 1
if n == 0 :
break
q.append((b,c,k*(b+c)-a))
q.append((a,c,k*(a+c)-b))
tmp = k*(a+b)-c
#if tmp>0 and tmp!=c :
# print("qwq")
# print(a,b,k*(a+b)-c)
# q.append((a,b,k*(a+b)-c))