专栏文章
题解:P12876 [蓝桥杯 2025 国 Python A] 杨辉三角
P12876题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miouj9gt
- 此快照首次捕获于
- 2025/12/03 01:22 3 个月前
- 此快照最后确认于
- 2025/12/03 01:22 3 个月前
提供一种简单的想法

注意到红色这个圈内,数字单调递增,即 单调递增;蓝色这个圈内,数字单调也是递增,即 单调递增。
因此可以先枚举红色再枚举蓝色,即先枚举将 从 开始枚举,再将 从 开始枚举,直到 ,具体可用 递推计算。
这种方法快到飞起, 时也能在一秒内通过。
参考程序:
CPP#include<iostream>
#define int long long
using namespace std;
const int N=1e5+10;
int f[N],vis[9];
signed main() {
int n;
cin>>n;
for(int i=2;i<=n;++i)
for(int j=i+1,tmp=i;tmp<=n;++j){
++f[tmp];
tmp=tmp*j/(j-i+1);
}
for(int i=2;i<=n;++i)++vis[f[i]];
for(int i=1;i<=8;++i)if(vis[i])printf("%lld %lld\n",i,vis[i]);
}
时间复杂度
时间复杂度与每个数在杨辉三角中出现的次数有关。
当 时可以达到如下表格:
| 出现次数 | 个数 |
|---|---|
| 1 | 1 |
| 2 | 999952655 |
| 3 | 15 |
| 4 | 47321 |
| 6 | 6 |
| 8 | 1 |
内,大部分出现了 次,最多出现 次。
具体而言:
- 由于对称性,仅有 只出现 次;
- 形如 , 为质数,出现过 次;
- 形如 ,其中 为斐波那契数列,出现过 次;
- 目前只发现了 出现过 次。
事实上有一个 Singmaster 猜想:杨辉三角中数出现的次数是 的,即存在一个上界,目前发现出现最多为 次,而 Singmaster 认为这个答案是 或 。
1971 年,Singmaster 自己证明到了 。
1974 年,Abbott,Erdős,Hanson 三个人证明到了 。
2007 年,Kane 证明到了 。
若 Singmaster 猜想成立,则该算法的时间复杂度为 。
详细内容可以参考这篇知乎文章Singmaster猜想——杨辉三角里一个数字最多出现多少次
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...