https://atcoder.jp/contests/arc114

D

数轴上n个点ai,数轴红色

每次操作 选一个点+1 或 -1, 经过的颜色翻转(红/蓝)

目标是 数轴切割成 红 蓝 红 蓝…红的指定多段(输入切割点的坐标)

求最少操作次数

n 5000

|坐标| 1e9

2s

1024mb

我的思路

没啥想法,首先 颜色可以看成 红0 蓝1

那么就是 多个1的 xor 等于目标

问题是 ai可以重复

1
2
3
4
5
11111111
a1
a2
11111
111

可以这样构成

然后一个是

1
2
3
4
11111111
a1
11111111
a2

如果两个朝向中间的有重叠,那么不重叠肯定更优,所以任意两个朝向中间的不重叠

那么重叠的就只能同向

1
2
3
4
5
6
7
8
9
10
111111111
a1
1111111111
a2
等价于

111111111111111
a1
1111
a2

同向的可能重叠,不过同向的话,那就有可重叠但不覆盖,


这里一个想法就是 能否证明每个1 都可以一次覆盖,如果能的话那每个1只需要尝试左侧或右侧最近的点

考虑多个重叠关系

1
2
3
4
5
6
7
8
1111111111
a1
11111111111
a2
11111111111
a3
=
111 1111 111

中间这一段 合法的方案 一定会被至少3个覆盖,得不到上面猜想的性质


1
2
3
4
5
6
7
8
9
10
11
1111111111
1111111111
1111111111
=
1111 11 1111

1111111111
1111111111
1111111111
=
11111111 11 1111

也保证不了ai对应的是前面几个点

不过 a的个数 = 覆盖1的段数

a是 段的端点(除了第一个)

因为有

1
2
3
4
5
6
7
11111111111    111  
a0
a1
a2
111111
111111111
1111111

的情况

而a0/a1比较难切割,因为左侧也可以对称

所以一个连续的多个1

1
2
3
4
5
6
7
111    111111   111
=
a aa a
1111111
1111111
111111
111111

dp[前i段1完成][最后使用的a]= 最小代价

dp[i][j] = min(dp[i0][j0]+cost(i0+1..i,j0+1..j)

也就是需要 计算用$j_0+1\cdots j$来完成$i_0+1..i$这段的$1$的代价

閱讀全文 »

E

https://atcoder.jp/contests/arc113/tasks/arc113_e

给字符串,仅由a和b组成

操作: 任意选择两个相同的字母,把它们之间的内容 颠倒顺序,删掉这两个被选择的字母

你可以操作 0 到任意次

求字典序最大的结果

我的思路

显然,可以把a看作0,b看作1,也就是1尽量靠前且尽量多,而在满足1尽量多的时候,让0也尽量多

显然 如果0有偶数个,可以不消耗任何1,让结果以1开始

如果以0结束,也同样可以不消耗任何1,让结果以1开始

那么就是如何分类是这个问题的关键,怎么尽量少的分化,覆盖所有情况。

比赛里做出的人不多,有些cf红名大佬都没出 XD

我在讨论时,从 起始字符,终止字符,字符个数,连续字符个数多个方面去分类,想也不用想,没写出来,(之讨论到了部分情况)

閱讀全文 »

https://atcoder.jp/contests/arc112

E - Cigar Box

初始 a=[1...n]

每次操作 把一个元素移动到开头或结尾

给定m次操作后得到的a

问 有多少个具体的方案 能得到目标的a mod 998244353

$n\in [2,3000]$

m 3000

2s

1024mb

我的思路

m 只要大于等于n 就所有方案都可以

所以n的大小在这里更关键3000的话,难道要n^2左右的算法?

如果倒着来就是每次选开头或结尾的 插入到序列中任何位置

似乎没有变简单

如果把每个数字最后一次操作的时刻记录下来

对应到最后数组中的位置,一定是连续的

因为 最终数组 总可以 划分成 [左侧放入][未操作][右侧放入], 每段长度可以为0

而对于单侧放入的,靠外的 最后一次操作时间 一定 晚于 靠内的

所以可以

dp[l][r][t] 表示 结果数组中[l..r] 这一段最后操作的时间为t的 到t时刻的方案数


初始状态

讨论一下 未操作的一段 如果非0, 首先一定要满足 单调递增,那么 这一段的对应dp[l][r][0]+=1

否则未操作的一段长度为0,那么首个停止的放入时 可以从左也可以从右

dp[l][l][t] += 2*(2n)^{t-1}, 前t-1随意操作,最后一次操作a[l]

然后转移

dp[l][r][t] => dp[l-1][r][t1], 要贡献,也就是(t+1..t1-1) 这一段随便操作,最后一次操作a[l-1]

dp[l-1][r][t1] += dp[l][r][t] * (2(n-(r-l+1)))^(t1-t-1) * 1

同理 从右侧加入

dp[l][r+1][t1] += dp[l][r][t] * (2(n-(r-l+1)))^(t1-t-1) * 1

ans = dp[1][n][m]


问题是状态是$O(n^2m)$的,而转移需要枚举$t_1$,所以时间是$O(n^2m^2)$的,会tle


一个观察是, 上面除了初始化和具体的l,r有关系,而后续的 似乎没关系,但实际上 受到边界的影响

$dp_{l,r,t,l<r,t>0}=\sum_{t_0 < t} dp_{l+1,r,t_0}(2(n-(r-l)))^{t-t_0-1}+dp_{l,r-1,t_0}(2(n-(r-l)))^{t-t_0-1}$

$\displaystyle dp_{l,r,t,l<r,t>0}=(2(n-(r-l)))^{t-1}\sum_{t_0 < t} \frac{dp_{l+1,r,t_0}+dp_{l,r-1,t_0}}{(2(n-(r-l)))^{t_0}}$

这样的话 可以前缀和,时间复杂度$O(n^3)$


再从贡献的角度来看,初始是[l,r,t]的情况

那么 每次到下一个状态 中间的任意的可选次数都是 每次-1, 与选左选右没有关系

$(2(n-(r-l+1)))^{t_0}(2(n-(r-l+1)-1))^{t_1}\cdots (2)^{t_{n-(r-l+1)}}$

而其中 有$(l-1)$次是 选左边,所以$\binom{n-(r-l+1)}{l-1}$ 个 与左右相关的顺序

然后 $t+\sum_{i=0}^{n-(r-l+1)} (t_i+1)= m$

而初始状态 只有 全操作过$l=r,t>0$和 有不动块$t=0$两种情况(注意重叠

所以 需要计算 $f(t,s)=(2(n-s))^{t_0}(2(n-s-1))^{t_1}\cdots (2)^{t_{n-s}},t+\sum_{i=0}^{n-s} (t_i+1)= m$

$ans = \sum_{p=1}^{n} \sum_{t=1}^{m} 2(2n)^{t-1}\binom{n-1}{p-1}f(t,1)+\sum_{l,r,a[l\cdots r]单增} \binom{n-(r-l+1)}{l-1}f(0,r-l+1)$


$f$看着有点怪,换个角度$f(t,s) = g(m-t,n-s)$

$g(t,s)=f(m-t,n-s)=(2(s))^{t_0}(2(s-1))^{t_1}\cdots (2)^{t_{s}},\sum_{i=0}^{s} (t_i+1)=t$

$ans = \sum_{p=1}^{n} \sum_{t=1}^{m} 2(2n)^{t-1}\binom{n-1}{p-1}g(m-t,n-1)+\sum_{l,r,a[l\cdots r]单增} \binom{n-(r-l+1)}{l-1}g(m-0,n-(r-l+1))$

$g(t,s)=\sum_{t_0=0}^{t-1}(2s)^{t_0} g(t-(t_0+1),s-1),\sum_{i=0}^{s} (t_i+1)=t$

$g(t,1) = 2^{t-1}$

令$g_s(x)=\sum_{t=1}^{\infty} g(t,s)x^t$, 即$[x^0]g_s(x)=0$

$[x^t]g_s(x) = \sum_{t_0=0}^{t-1}(2s)^{t_0} [x^{t-(t_0+1)}] g_{s-1}(x)$

$[x^t]h_s(x)=(2s)^{t_0}$

$[x^t]g_s(x) = \sum_{t_0=0}^{t-1} [x^t]h_s(x) [x^{t-(t_0+1)}] g_{s-1}(x)$

$g_s(x) = x h_s(x)g_{s-1}(x)$

$g_1(x)=\sum_{i=1}^{\infty} g(i,1)x^i=\sum_{i=1}^{\infty} 2^{i-1}x^i$

令$H_s(x)=xh_s(x)=x\sum_{i=0}^{\infty} (2s)^{i} x^i=\sum_{i=1}^{\infty} (2s)^{i-1} x^i$

注意到 $g_1(x)=H_1(x)$

$g_s(x)=\prod_{i=1}^{s} H_i(x)$

应该就过了

閱讀全文 »

https://atcoder.jp/contests/arc111

F - Do you like query problems?

一个查询问题

整数序列,a[n],初始全0,

ans = 0

q个询问,其中$v_i\in[0,M-1]$

  • 1类: $\mathrm{for} j = l_i\cdots r_i, a_j=\min(a_j,v_i)$, 区间change min
  • 2类: $\mathrm{for} j = l_i\cdots r_i, a_j=\max(a_j,v_i)$, 区间change max
  • 3类: ans+=(\sum a[l_i..r_i])

最后输出ans

Maroon 觉得这个 问题太简单了

对于 给定$N,M,Q$,那么 有 $(\frac{N(N+1)}{2}(M+M+1))^Q$种合法的输入,求所有输出的值的和 mod 998244353

输入 $N,M,Q \in[1,200000]$

4s

1024mb

我的思路

啊????

题意上的 合法输入,左边就是选$[l,r]$, 右边就是min的选v,max的选v,输出的1


这个 询问的问题真的可做吗?感觉上 统计所有方案可以从概率频次的角度去计算,但是原来的单独问题真的能做吗?

比如 改成了

1
2
3
4
5
6
7
大小大小大小大小大小大小大小大

然后对 区间 做多次 min
[ ]
[ ]
[ ]
但是过程保持 大于这里面的小,又可以下降大,这样的话是非常离散的多点状态更新啊

感觉做不了一点


回到本题,感觉就每个点单独考虑贡献就好了

对于 a[i] 表示$[x^v]f_{i,t}(x)$表示下标$i$经过$t$轮后值为$v$的操作方案数,初始状态有$[x^v]f_{i,0}(x) = [v=0]$

那么 就可以变成 当前状态+=上个状态 * 区间选择 * (操作类型=1)* 值选择

令$c_i=i(n+1-i)$表示一次选区间时$i$被选中的方案数,那么不被选中的为$\frac{n(n+1)}{2} - c_i$

$\mathrm{ans}=\sum_{i=1}^{N}c_i\sum_{v=0}^{M-1}v\sum_{t=0}^{Q-1} ([x^v]f_{i,t}(x))A^{Q-(t+1)}$, 表示$t+1$次的时候覆盖了位置$i$调用输出$v$了,而注意后续任何操作该次贡献都翻倍,所以有后面的$A^{Q-(t+1)}$

这是一个 明显超时的方案,接下来就看能不能做效率优化了


令$A=\frac{N(N+1)}{2}(M+M+1) \neq 0$表示单次所有操作方案数

考虑$[x^v]f_{i,t}(x)$的来源

$[x^v]f_{i,t-1}(x) \cdot ((\frac{n(n+1)}{2} - c_i)\cdot (M+M)+\frac{n(n+1)}{2}\cdot 1)$ 表示一个位置不被操作的方案数

$[x^v]f_{i,t-1}(x) \cdot (c_i) \cdot (M-v)$ 表示 使用$\min(v_1),v_1 \ge v$的方案数,也就是min操作后不影响

$\sum_{v_1 > v}[x^{v_1}]f_{i,t-1}(x) \cdot (c_i) \cdot 1$ 表示 使用$\min(v),v_1 > v$的方案数,min操作后改变

$[x^v]f_{i,t-1}(x) \cdot (c_i) \cdot (v+1)$ 表示 使用$\max(v_1),v_1 \le v$的方案数,也就是操作后不影响

$\sum_{v_1 < v}[x^{v_1}]f_{i,t-1}(x) \cdot (c_i) \cdot 1$ 表示 使用$\max(v),v_1 < v$的方案数,操作后改变

合并一下

$[x^v]f_{i,t}(x) = [x^v]f_{i,t-1}(x) \cdot ((\frac{n(n+1)}{2} - c_i)\cdot (M+M)+\frac{n(n+1)}{2}\cdot 1)+[x^v]f_{i,t-1}(x) \cdot (c_i) \cdot (M+1) + \sum_{v_1 \neq v}[x^{v_1}]f_{i,t-1}(x) \cdot (c_i) \cdot 1$

$= [x^v]f_{i,t-1}(x) \cdot ((\frac{n(n+1)}{2} - c_i)\cdot (M+M)+\frac{n(n+1)}{2} +(c_i) \cdot (M)) + \sum_{v_1 = 0}^{M-1} [x^{v_1}]f_{i,t-1}(x) \cdot (c_i)$ , 从第二部分提取1个到第三部分

而右侧 是和v无关的,只和$t$相关,因为它是位置$i$的所有可能值的方案数,所以和$i$也是无关的,但$c_i$是有关$i$的

而左侧也和$v$无关,表现的是不同$v$之间没有直接的影响

$= [x^v]f_{i,t-1}(x) \cdot (\frac{n(n+1)}{2}(2M+1) - c_iM) + A^{t-1} \cdot c_i$

令$d_i=\frac{n(n+1)}{2}(2M+1) - c_iM$

$[x^v]f_{i,t}(x)= [x^v]f_{i,t-1}(x) \cdot d_i+ A^{t-1} \cdot c_i$

讨论$d_i = 0,A,$和其它(这里我的思考过程是3步骤,不过回过头看只用看是否是$A$


若$d_i=0$, $[x^v]f_{i,t}(x)= A^{t-1} \cdot c_i$


否则$d_i\neq 0$

$\displaystyle \frac{[x^v]f_{i,t}(x)}{d_i^t}= \frac{[x^v]f_{i,t-1}(x)}{(d_i)^{t-1}} + \frac{c_i}{d_i}(\frac{A}{d_i})^{t-1}$

$\displaystyle \frac{[x^v]f_{i,t}(x)}{d_i^t}= \frac{[x^v]f_{i,0}(x)}{(d_i)^{0}} + \frac{c_i}{d_i}\sum_{j=0}^{t-1} (\frac{A}{d_i})^{j}$

令$\displaystyle g(x,p)=\sum_{i=0}^{p-1} x^i$,有$x=1$时$g(x,p)=p$,当$x\neq 1$时$\displaystyle g(x,p)=\frac{x^p-1}{x-1}$

$\displaystyle [x^v]f_{i,t}(x)= d_i^t\left([x^v]f_{i,0}(x) + \frac{c_i}{d_i} g(\frac{A}{d_i},t)\right)$

$\displaystyle [x^v]f_{i,t}(x)= d_i^t\left([v=0] + \frac{c_i}{d_i} g(\frac{A}{d_i},t)\right)$,未操作时都是0

如果$d_i = A$则$\displaystyle [x^v]f_{i,t}(x)= d_i^t\left([v=0] + \frac{c_i}{d_i} g(1,t)\right)= d_i^t\left([v=0] + \frac{c_i}{d_i} t\right)$,未操作时都是0


否则$d_i\neq 0,d_i\neq A$, 待定系数法

$[x^v]f_{i,t}(x) + k_iA^t = d_i([x^v]f_{i,t-1}(x) + k_iA^{t-1})$

$d_ik_iA^{t-1}-k_iA^t=A^{t-1}c_i$

$d_ik_i-k_iA=c_i$, 因为$A\neq 0$

$\displaystyle k_i=\frac{c_i}{d_i-A}$ 这里分母非0

$[x^v]f_{i,t}(x) + k_iA^t = (d_i)^t([x^v]f_{i,0}(x) + k_iA^0)$

$[x^v]f_{i,t}(x) = (d_i)^t([x^v]f_{i,0}(x) + k_i)- k_iA^t$

$= (d_i)^t([v=0] + k_i)- k_iA^t$,未操作时都是0, 而这种情况对于$d_i=0$ 也成立,一定$0\neq A$,

所以 $[x^v]f_{i,t}(x) = \frac{c_i}{d_i-A} ((d_i)^t-A^t), v\neq 0$


$\displaystyle \mathrm{ans}=\sum_{i=1}^{N}c_i\sum_{v=0}^{M-1}v\sum_{t=0}^{Q-1} ([x^v]f_{i,t}(x))A^{Q-(t+1)}$,带入 上面时分类讨论$d_i$与$A$是否相等

令$\mathrm{ans}i=c_i\sum{v=0}^{M-1} v\sum_{t=0}^{Q-1} ([x^v]f_{i,t}(x)) A^{Q-(t+1)}= c_i\sum_{v=1}^{M-1} v\sum_{t=0}^{Q-1} ([x^v]f_{i,t}(x))A^{Q-(t+1)}$ 注意到$v=0$时不会贡献

则 $\displaystyle \mathrm{ans}=\sum_{i=1}^{N} ans_i$


对于 $d_i=A$

$\displaystyle \mathrm{ans}i=c_i\sum{v=1}^{M-1}v\sum_{t=0}^{Q-1} d_i^t\left([v=0] + \frac{c_i}{d_i} t \right)A^{Q-(t+1)}$

$\displaystyle =c_i\sum_{v=1}^{M-1}v\sum_{t=0}^{Q-1} A^t\left(\frac{c_i}{A} t\right)A^{Q-(t+1)}$

$\displaystyle =c_i^2A^{Q-2}\frac{M(M-1)}{2} \sum_{t=1}^{Q-1} t$

$\displaystyle =c_i^2A^{Q-2}\frac{M(M-1)}{2} \frac{Q(Q-1)}{2}$


若$d_i\neq A$

$\displaystyle \mathrm{ans}i=c_i\sum{v=0}^{M-1}v\sum_{t=0}^{Q-1} \left(\frac{c_i}{d_i-A} ((d_i)^t-A^t)\right)A^{Q-(t+1)}$

$\displaystyle =\frac{c_i^2}{d_i-A} A^{Q-1} \frac{M(M-1)}{2} \left(\sum_{t=0}^{Q-1} \left(\frac{d_i}{A}\right)^t-\sum_{t=0}^{Q-1} 1\right)$

$\displaystyle = \frac{c_i^2}{d_i-A} A^{Q-1}\frac{M(M-1)}{2} \left(g(\frac{d_i}{A},Q)-Q\right)$


整理一下,$N,M,Q$输入

$A=\frac{N(N+1)}{2}(M+M+1)\neq 0$

令$\displaystyle g(x,p)=\sum_{i=0}^{p-1} x^i$,有$x=1$时$g(x,p)=p$,当$x\neq 1$时$\displaystyle g(x,p)=\frac{x^p-1}{x-1}$

$c_i=i(n+1-i)$

$d_i=\frac{n(n+1)}{2}(2M+1) - c_iM$

$\displaystyle \mathrm{ans}=\sum_{i=1}^{N} ans_i$

若$d_i = A$, 则 $\displaystyle \mathrm{ans}_i=c_i^2A^{Q-2}\frac{M(M-1)}{2} \frac{Q(Q-1)}{2}$

若$d_i \neq A$,则$\displaystyle \mathrm{ans}_i = \frac{c_i^2}{d_i-A} A^{Q-1}\frac{M(M-1)}{2} \left(g(\frac{d_i}{A},Q)-Q\right)$

似乎就过了?

閱讀全文 »

题目

$A(x) = 1x + 1x^2 + 2x^3+ 3x^4+5x^5+8x^6+..$

已知$A(x)$(整数) 求问,x为有理数时$A(x)$的取值序列

$xA(x) = 1x^2 + 1x^3 + 2x^4+ 3x^5+5x^6+8x^7+..$

$(1-x)A(x) = x + 1x^3 + 1x^4 + 2x^5+ 3x^6+5x^7+8x^8+..$

$(1-x)A(x) = x + x^2A(x)$

$A(x)x^2 +(1+A(x))x - A(x) = 0$

$x = \frac{\sqrt{1+2A(x)+5A(x)^2}-1-A(x) }{2A(x)}$ (只考虑正的取值)

也就是找$1+2x+5x^2=y^2$ 的解

在pe 100 里面我们讨论过变形

$5+10+25x^2=5y^2$

$4+(1+5x)^2=5y^2$

$(1+5x)^2-5y^2=-4$

形式上是个pell方程右侧换成-4

pell方程

在做过66和100以后,回顾看看

66是pell方程,解一定是渐进分数,且一定有解,所有解能由基础解的幂次生成

100是pell方程右侧改为-1的方程,解一定是渐进分数,但没有证明到一定有解(d=34时似乎真的没解),通过连分数的递推寻找

这里

我们关心一下和佩尔方程的关系

在pe66,100中我们的步骤是这样的

$x^2-d y^2 = \pm 1$

$|\sqrt{d}-\frac{x}{y}| = |\frac{dy^2-x}{y^2(\sqrt{d}+\frac{x}{y})}| < \frac{1}{2y^2}$

然后满足上面不等式的一定是连分数的渐进分数

我们假设$x^2-dy^2 = c$

$\frac{x}{y} = \sqrt{d+\frac{c}{y^2}}$

上面式子的放缩部分是 $|\frac{c}{\sqrt{d}+\frac{x}{y}}| < \frac{1}{2}$

$ |\frac{4}{\sqrt{5}+\sqrt{5-\frac{4}{y^2} } }| < \frac{1}{2}$

当c比较大时 例如 $x^2-10y^2=9$ 有三组解答 $(7,2)…$, $(13,4)…$,$(57,18),…$

如果为正

考虑两组满足 $x^2-5y^2=-4$的值

根据pe100的结论,$(9+4\sqrt{5})^n$ 是 其佩尔方程的基础解对应的值

$1=\frac{x_0^2-dy_0^2}{x_1^2-dy_1^2} $

$= \frac{x_0+y_0\sqrt{d}}{x_1+y_1\sqrt{d}} \cdot \frac{x_0-y_0\sqrt{d}}{x_1-y_1\sqrt{d}}$

$= \frac{(x_0+y_0\sqrt{d})(x_1-y_1\sqrt{d})}{-4} \cdot \frac{(x_0-y_0\sqrt{d})(x_1+y_1\sqrt{d})}{-4}$

$= ((\frac{x_0x_1-y_0y_1d}{4})+(\frac{x_1y_0-x_0y_1}{4})\sqrt{d})((\frac{x_0x_1-y_0y_1d}{4})-(\frac{x_1y_0-x_0y_1}{4})\sqrt{d})$

$= (\frac{x_0x_1-y_0y_1d}{4})^2-(\frac{x_1y_0-x_0y_1}{4})^2 d $

说明两个不同的-4的解, 如果能让$x_1y_0-x_0y_1 = 0 (\pmod 4)$,那么它们之间一定是通过乘一个=1的解得到的,(之考虑y是因为如果y为整数且等式成立,那么x必为整数),也就是它们有同样的基础解

如果y是偶数,$y = 2k$,显然 x也是2的倍数,直接解 $(2x)^2-5(2y)^2=-4$,$x^2-5y^2=-1$ 解之即可

如果y是奇数, x也是奇数

根据mod 4进行分类

$(4k_0+1,4k_1+1) ,(4k_0+3,4k_1+3)$ 有同样的基础解(如果有解)

$(4k_0+1,4k_1+3) ,(4k_0+3,4k_1+1)$ 有同样的基础解(如果有解)

所以最后分为3类

注意到基础解的幂次可乘性, 考虑(x,y)为最小全正解,$x>0,y>0$

$(x+y\sqrt{5})(9+4\sqrt{5})^{-1} = (x+y\sqrt{5})(9-4\sqrt{5})$

$ = ((9x-20y)+(9y-4x)\sqrt{5})$ , 因为是最小正解,所以再次乘积后 $9x-20y < 0$ 或 $9y-4x<0$

$ \frac{x}{y} < \frac{20}{9} 或 \frac{x}{y} > \frac{9}{4}$

$ \sqrt{5-\frac{4}{y^2}} < \frac{20}{9} 或 \sqrt{5-\frac{4}{y^2}} > \frac{9}{4}$

$\frac{2}{\sqrt{5}} \le y < \frac{18}{\sqrt{5}} 约 8.049844718999243 $

要尝试的y有限

综上原题可解

Code 1

尝试8以内

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def isSquare(v):
if v == 1:
return True
l = 1
r = v
while l+1 < r:
m = (l+r)//2
if m*m == v:
return True
if m*m > v:
r = m
else:
l = m
return False


def main():
for i in range(1, 9):
if isSquare(5*i*i-4):
print(i)


main()

运行得到基础解

1
2
3
1 1
4 2
11 5

Code2

1
2
3
4
5
6
7
8
9
10
11
12
13
14

def main():
arr = [(1,1),(4,2),(11,5)]
cnt = 0
while cnt < 15:
for i in range(len(arr)):
x,y = arr[i]
if x > 1 and (x-1)%5==0:
cnt+=1
print((x-1)//5)
arr[i] = (9*x+20*y,9*y+4*x)


main()

参考

https://math.stackexchange.com/questions/742181/find-all-integer-solutions-for-the-equation-5x2-y2-4

https://math.stackexchange.com/questions/1088277/fermats-difference-equation-pells-equation

0%