蓝桥杯杨辉三角

PREV-282 杨辉三角形【第十二届】【蓝桥杯省赛】【B组】

(二分查找 + 递推):

解析:

1.杨辉三角具有对称性:

2.杨辉三角具有一定规律

通过观察发现,第一次出现的地方一定在左部靠右的位置,所以从后往前进行查找

代码:

cpp 复制代码
#include <iostream>
#include <algorithm>

using namespace std;

typedef long long LL;
LL n;
LL C(int a, int b)
{
	LL res = 1;
	for (int i = 1, j = a; i <= b; i ++, j --)
	{
		 res = res * j / i;
		 if (res > n)
			return res;
	}
	return res;
}

//检查第k斜行
bool check(int k)
{
	LL l = 2 * k, r = max(n, l);
	while (l < r)
	{
		LL mid = (l + r) / 2;
	  	if (C(mid, k) >= n) r = mid;
	  	else l = mid + 1;
	} 
	if (C(l, k) != n) return false;
	else
	{
		//k是行数
		LL res = (l + 1) * l / 2 + k + 1;
		printf("%lld\n", res);
		return true;
	}
}
int main()
{
	cin >> n;
	for (int i = 16;; i --)
		if (check(i))
			break;
			
	return 0;
}

相关推荐
软行1 小时前
LeetCode 每日一题 3341. 到达最后一个房间的最少时间 I + II
数据结构·c++·算法·leetcode·职场和发展
独行soc4 小时前
2025年渗透测试面试题总结-阿里云[实习]阿里云安全-安全工程师(题目+回答)
linux·经验分享·安全·阿里云·面试·职场和发展·云计算
程序员小远5 小时前
UI自动化测试方案详解
自动化测试·软件测试·selenium·测试工具·ui·职场和发展·测试用例
小羊在奋斗6 小时前
【LeetCode 热题 100】搜索插入位置 / 搜索旋转排序数组 / 寻找旋转排序数组中的最小值
算法·leetcode·职场和发展
林下清风~9 小时前
力扣hot100——347.前K个高频元素(cpp手撕堆)
算法·leetcode·职场和发展
Swift社区11 小时前
涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题
算法·leetcode·职场和发展
洛书千年13 小时前
五月份嵌入式面试总结
面试·职场和发展
蓝婷儿15 小时前
前端面试每日三题 - Day 34
前端·面试·职场和发展
S01d13r20 小时前
LeetCode 解题思路 48(编辑距离、只出现一次的数字)
算法·leetcode·职场和发展
XiaoyaoCarter1 天前
每日一道leetcode(新学数据结构版)
数据结构·c++·算法·leetcode·职场和发展·哈希算法·前缀树