2021蓝桥杯B组 第I题杨辉三角形

2023-05-16

第I题 杨辉三角形

题目大意:

解法一:(得20%)

思路:

当指考虑小范围的值时,我们可以直接根据杨辉三角形的规律:第i行第j列的值=第i-1行第j列的值+第i-1行第j-11列的值,来把前50个杨辉三角形的数存入数组中,最后通过一个循环来查找就可以得到20%的分数。

代码如下:

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
const int N = 10100;
LL dp[N][N];//用来存入杨辉三角形的每一个数
LL sk[N];//记入每个数是第几个数
int s = 1;
int n;
int main() {
    cin >> n;
    dp[0][0] = 1;
    for (int i = 1; i <= 50; i++) {
        for (int j = 1; j <= i; j++) {
            dp[i][j] = dp[i - 1][j] + dp[i - 1][j - 1];//杨辉三角形的规律
            sk[s++] = dp[i][j];
        }
    }
    for (int i = 1; i <= 10000; i++) {
        if (sk[i] == n) {//第一次相等即为该数第一次出现的位置
            cout << i;
            break;
        }
    }
    return 0;
}

解法二:(得全部分)

思路:

 对杨辉三角形进行仔细观察可知道,其中有很多数是重复的,因此我们只需要记录其有效部分。具体规律如下图所示:

还可以发现,对于同一行,列数越大对应的数值也越大。而且某一行的某一列的值为x,在列数不变的情况下,无论行数怎么变大都不会再出现比x小的数;同理再行数不变的情况下列数怎么变大也不会出现比x小的数。并且得知n小于等于10的0次方时,有效列数为0-16列。因此我们可以一列一列的考虑,由于随着行号的变大,数值时单调递增的,其知道了行号、列号对应的数值也就知道了,于是便可以二分行号,使用二分查找的方法来计算本题。

代码如下:

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
ll N;
ll C(int a, int b)//求第i行第j列的值
{
	ll res = 1;
	for (ll i = a, j = 1; j <= b; i--, j++)
	{
		res = res * i / j;
		if (res > N)//如果中间结果超过N就直接返回
			return res;
	}
	return res;
}
int main()
{
	cin >> N;
	for (int k = 16; k >= 0; k--)//一列一列的找
	{
		ll l = 2 * k, r = max(N, l), mid;
		while (l <= r) {//对第k列二分查找行
			mid = l + (r - l) / 2;//二分行
			ll CC = C(mid, k);
			if (CC == N)
				break;
			else if (CC > N)
				r = mid - 1;
			else
				l = mid + 1;
		}
		if (C(mid, k) == N)
		{//第mid行、第k列的数就是N
			cout << (mid + 1) * mid / 2 + k + 1 << endl;
			//杨辉三角形的行数符号公差为1的等差数列,故用等差数列求和公式
			//加上第几列再加上1(因为列从0开始)即可得出该数的位置
			break;
		}
	}
	return 0;
}

大数据201 liyang

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2021蓝桥杯B组 第I题杨辉三角形 的相关文章

  • FreeRTOS源码学习_01-任务调度器-2021-10-28

    FreeRTOS源码学习 01 任务调度器 一 写在前面二 源码分析1 开始任务调度 xff1a void vTaskStartScheduler 2 创建软件定时器任务 xff1a 3 检查链表队列是否有效 xff1a prvCheckF
  • 2021-02-21 SONiC SAI结构5 VXLAN

    SONiC SAI结构5 VXLAN VXLAN报文处理模型流水线结构 SONiC SAI支持VXLAN协议 xff0c 具备支持VTEP的能力 根据报文处理功能模型的特点 xff0c 不同的功能块可以好像搭积木一样组合在一起形成新的功能
  • 2021年8月14日 七夕节的相遇 SONiC+P4实现

    2021年8月14日 七夕节的相遇 SONiC 43 P4实现 ONF启动了PINS项目 xff0c P4 integrated network stack
  • 最新C语言编程软件推荐(2021整理)

    一 C语言编程软件推荐 C语言编程软件适于编写系统软件 xff0c 是学习编程的同学们的必备软件 c语言一种应用非常广泛的编程语言 xff0c 不仅仅是在软件开发上 xff0c 而且各类科研都会用到c语言 今天小编给大家汇总下C语言的编程软
  • 陇剑杯 2021 write up整理

    竞赛 write up 收集和整理 陇剑杯 2021 write up整理1 签到题1 1 2 JWT2 12 22 32 42 52 6 3 webshell3 13 23 33 43 53 63 7 4 日志分析4 14 24 3 5
  • 2021蓝桥杯B组 G题砝码称重

    题目大意 xff1a 解法一 xff1a 首先想到的是可以用广度优先搜索的方式来进行暴力求解 xff0c 通过使用递归来将每一种方法遍历 xff0c 并且标记 xff0c 不过由于此方法的时间复杂度是O n3 故使用暴力搜索只能完成50 的
  • 2021电赛F题数字识别和巡线部分

    文章之前12月发了一次 xff0c 但是我后来申请的免毕设后 xff0c 用到了一些文字 xff0c 所以删了这篇文章 xff0c 但是还是查重了 xff0c 于是我把一些程序讲解先删了 xff0c 等毕设结束后再编辑加上 这次电赛我没有准
  • 【2021最新版】JavaOOP面试题总结(99道题含答案解析)

    文章目录 1 什么是B S架构 xff1f 什么是C S架构2 Java都有那些开发平台 xff1f 3 什么是JDK xff1f 什么是JRE 4 Java语言有哪些特点5 面向对象和面向过程的区别6 什么是数据结构 xff1f 7 Ja
  • 【2021年8月】解决 rosdep update超时问题

    修改两个文件即可快速解决超时问题 1 修改 etc ros rosdep sources list d 20 default list 执行sudo gedit etc ros rosdep sources list d 20 defaul
  • 10 个 GitHub 上最火的程序员简历项目,2021 金三银四必备!

    大家好 xff0c 我是你们的 猫哥 xff0c 一个不喜欢吃鱼 又不喜欢喵 的超级猫 前言 猫哥是一个常年混迹在 GitHub 上的猫星人 xff0c 所以发现了不少好的前端开源项目 常用技巧 xff0c 在此分享给大家 公众号 xff1
  • 个人简历2021

    标题 个人简历 日期 2021 09 27 23 42 57 标签 简历 分类 工作 职业发展 说下我的个人简历吧 xff0c 希望大家能够了解我 xff0c 一起在技术这条路上一直走下去 个人信息 姓名性别年龄现居地址邮箱陈作立男29上海
  • rosdep update 超时失败2021最新解决方法

    好记性不如烂笔头 xff0c 记录方法 xff0c 方便大家 一 关于 rosdep 安装ros的最后一步是rosdep init和rosdep update xff0c rosdep是解决ros包依赖问题的一个工具 rosdep init
  • 2021年MathorCupD题思路

    某钢材生产制造商的钢材切割流程如图 1 所示 其中开卷上料环节将原材料钢卷放在开卷机上 xff0c 展开放平送至右侧操作区域 xff08 见图 2 xff09 剪切过程在剪切台上完成 xff0c 剪切台上依次有切头剪和圆盘剪 圆盘剪 xff
  • 2021-02-18

    多旋翼飞行器学习笔记 二 机架设计 2 1布局设计 1 机身基本布局 交叉型 xff1a 目前常用的是X字型布局 xff0c 因为 xff1a xff08 1 xff09 机动性更强 xff1b xff08 2 xff09 前视相机的视场角
  • 2021电赛F题视觉教程+代码免费开源

    2021电赛F题视觉教程 43 代码免费开源 最近好多要电赛题的源码 xff0c 其他csdn营销号下载都需要会员或钱 xff0c 正好最近课设又要做一遍电赛小车题 xff0c 哥们先把代码开源了 xff0c 饿死营销号 电赛宝藏链接 xf
  • 2021校招_海康威视

    2021届海康威视面试 一面 xff1a 1 https与http协议的区别 2 Spring的启动过程 3 Springboot相比较Spring的优点 4 Linux修改文件权限命令 5 项目中所用到的技术 6 Restful风格 7
  • 队列的链式存储--- 2021.10.27

    上一讲链接 xff1a 队列的基本概念 2021 10 8 队列的链式存储 xff1a 什么叫队列的链式存储呢 xff1f 我们在上一讲都知道队列的结构特点 xff0c 那么我们可不可以通过链表来实现队列 xff0c 从而实现了队列的链式存
  • 求旋转后的坐标

    坐标点target 中心点center 角度angle 旋转后坐标 function getRotatePoint targetX targetY centerX centerY angle const rotation angle Mat
  • ES6 Symbol

    概览 const mySymbol Symbol mySymbol console log mySymbol Symbol mySymbol console log mySymbol Symbol mySymbol false consol
  • 解决 Mac 左滑浏览器默认的返回事件

    阻止 document body style overscrollBehaviorX none 恢复 document body style overscrollBehaviorX auto 参考 https juejin cn post

随机推荐

  • Hive 报错 Invalid column reference 列名

    两张表 当我执行 select m movieid m moviename substr m moviename 5 4 as years avg r rate as avgScore FROM t movie as m join t ra
  • 20数学建模C-中小微企业的信贷决策

    前言 源码文末获取 小编在 9 月份参加了今年的数学建模 xff0c 成绩怎么样不知道 xff0c 能有个成功参与奖就不错了哈哈 最近整理了一下 xff0c 写下这篇文章分享小编的思路 能力知识水平有限 xff0c 欢迎各位大佬前来指教 o
  • playwright 爬虫使用

    官方文档 xff1a Getting started Playwright Python 参考链接 xff1a 强大易用 xff01 新一代爬虫利器 Playwright 的介绍 目录 安装 基本使用 代码生成 AJAX 动态加载数据获取
  • kmeans聚类选择最优K值python实现

    来源 xff1a https www omegaxyz com 2018 09 03 k means find k 下面利用python中sklearn模块进行数据聚类的K值选择 数据集自制数据集 xff0c 格式如下 xff1a 维度为3
  • mysql构造页损坏

    构造页损坏 及修复方式可参考 gg gMysql页面crash问题复现 amp 恢复方法 阿里云开发者社区 也可通过 dd 命令进行构造 dd xff0c 命令参考 xff1a Linux dd 命令 菜鸟教程
  • mysql审计日志过滤sql功能

    审计日志功能是一个插件 xff0c 需要先安装插件才可以使用 过滤 sql 语句 xff0c 可以通过插件内核参数 audit log include commands 与 audit log exclude commands 参数设置 x
  • setDaemon python守护进程,队列通信子线程

    使用setDaemon 和守护线程这方面知识有关 xff0c 比如在启动线程前设置thread setDaemon True xff0c 就是设置该线程为守护线程 xff0c 表示该线程是不重要的 进程退出时不需要等待这个线程执行完成 这样
  • 中文与 \u5927\u732a\u8e44\u5b50 这一类编码互转

    了解更多关注微信公众号 木下学Python 吧 a 61 39 大猪蹄子 39 a 61 a encode 39 unicode escape 39 print a 运行结果 xff1a b 39 u5927 u732a u8e44 u5b
  • python字典删除键值对

    https blog csdn net uuihoo article details 79496440
  • 计算机网络(4)传输层

    目录 小知识点 xff1a 三次握手 xff1a 状态 xff1a tcpdump xff1a 一 xff1a 命令介绍 xff1a 二 xff1a 命令选项 xff1a tcpdump的表达式 xff1a 使用python扫描LAN工具
  • MSE 治理中心重磅升级-流量治理、数据库治理、同 AZ 优先

    作者 xff1a 流士 本次 MSE 治理中心在限流降级 数据库治理及同 AZ 优先方面进行了重磅升级 xff0c 对微服务治理的弹性 依赖中间件的稳定性及流量调度的性能进行全面增强 xff0c 致力于打造云原生时代的微服务治理平台 前情回
  • TF多层 LSTM 以及 State 之间的融合

    第一是实现多层的LSTM的网络 第二是实现两个LSTM的state的concat操作 分析 state 的结构 对于第一个问题 之前一直没有注意过 看下面两个例子 在这里插入代码片 import tensorflow as tf num u
  • 实例讲解PMP相关方参与度评估矩阵

    在规划相关方参与计划过程中 xff0c 会用到相关方参与度评估矩阵 如下图所示 在上图中 xff0c C 代表每个相关方的当前参与水平 xff0c D 是项目团队评估出来的 为确保项目成功所必不可少的参与水平 xff08 期望的 xff09
  • 在Mac OS中安装 wget

    先从Apple Store下载Xcode xff0c 然后安装Xcode 接着安装Homebrew包管理 xff0c 类似于Ubuntu下的apt get xff0c 终端下输入 xff1a ruby span class hljs ope
  • 前端与产品经理配合

    产品经理PM职业介绍 如何构建原型图 axure软件
  • C++ 重载运算符

    C 43 43 重载运算符号 本文针对结构体重载运算符号进行讲解 其实这是一个困扰我蛮久的问题 xff0c 就是结构体如何使用sort函数进行排序 xff0c 去网上找了很多 xff0c 满多都是关于类的 xff0c 虽然类跟结构体只有访问
  • &运算符的用法

    按位与运算符 34 amp 34 是双目运算符是参与运算的两数各对应的二进位相与 按位与 34 amp 34 功能是参与运算的两数各对应的二进位相与 只有对应的两个二进位均为1时 xff0c 结果位才为1 xff0c 否则为0 参与运算的数
  • 火柴棒游戏(暴力枚举)C++

    暴力枚举 P1149 NOIP2008 提高组 火柴棒等式 题目描述 xff1a 给你n根火柴棍 xff0c 你可以拼出多少个形如 A 43 B 61 CA 43 B 61 C 的等式 xff1f 等式中的AA BB CC是用火柴棍拼出的整
  • 2021蓝桥杯B组 G题砝码称重

    题目大意 xff1a 解法一 xff1a 首先想到的是可以用广度优先搜索的方式来进行暴力求解 xff0c 通过使用递归来将每一种方法遍历 xff0c 并且标记 xff0c 不过由于此方法的时间复杂度是O n3 故使用暴力搜索只能完成50 的
  • 2021蓝桥杯B组 第I题杨辉三角形

    第I题 杨辉三角形 题目大意 xff1a 解法一 xff1a xff08 得20 xff09 思路 xff1a 当指考虑小范围的值时 xff0c 我们可以直接根据杨辉三角形的规律 xff1a 第i行第j列的值 61 第i 1行第j列的值 4