当前位置: 首页 > news >正文

上海网站建设推广服务seo优化网站排名

上海网站建设推广服务,seo优化网站排名,如何构思公司网站,制作网站多少钱文章目录[蓝桥杯 2021 省 B] 杨辉三角形题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示思路:全部代码:[蓝桥杯 2021 省 B] 杨辉三角形 题目描述 下面的图形是著名的杨辉三角形: 如果我们按从上到下、从左到右的顺序把所有数排成一列&…

文章目录

  • [蓝桥杯 2021 省 B] 杨辉三角形
    • 题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
    • 提示
      • 思路:
      • 全部代码:

[蓝桥杯 2021 省 B] 杨辉三角形

题目描述

下面的图形是著名的杨辉三角形:

如果我们按从上到下、从左到右的顺序把所有数排成一列,可以得到如下数列:

1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,…1,1,1,1,2,1,1,3,3,1,1,4,6,4,1, \ldots1,1,1,1,2,1,1,3,3,1,1,4,6,4,1,

给定一个正整数 NNN,请你输出数列中第一次出现 NNN 是在第几个数。

输入格式

输入一个整数 NNN

输出格式

输出一个整数代表答案。

样例 #1

样例输入 #1

6

样例输出 #1

13

提示

对于 20%20 \%20% 的评测用例, 1≤N≤101 \leq N \leq 101N10;

对于所有评测用例, 1≤N≤1091 \leq N \leq 10^91N109

蓝桥杯 2021 第一轮省赛 B 组 H 题。

思路:

1·以斜着看,首先我们可以从中间把这个三角形劈成两半,因为左右对称,留左半。左半有了肯定就是最先出现的
在这里插入图片描述

2.看图,第一行得数都是C(0,N)第二行都是C(1,N)第三行都是C(2,N)以此类推第i行就是C(i,N),也就是说每一行的数都可以用组合数来表示大小,需要有一个求组合数的函数:

//求组合数
long long C(int a, int b)
{long long x = 1, y = 1;for (int i = a, j = b; j >= 1; i--, j--){x = x * i;y = y * j;if (x / y > n){ //如果在这过程中已经大于N了就没必要再继续了return x / y;}}return x / y;
}

2.我们知道了这个数的大小与行和列有关那这就转变为在第i行第j列的数的大小,我们可以发现这个的每一行的第一个数的的组合数下面的那个数都是从2i开始的,所以我们可以用二分法来找L=2i,R=n;

for (int i = 0; i <=14; i++) // 遍历行{long long L = 2 * i, // 为什么是2*iR = n, mid;while (L <= R){mid = (L + R) / 2;if (C(mid, i) > n){R = mid - 1;}else if (C(mid, i) < n){L = mid + 1;}else if (C(mid, i) == n){flag = true;break;}}

3这样我们可以找到这个数的i,和j然后可以发现找到一个数的i和j之后这个数所在的位置就是
所在行-1可以发现是一个等差数列,然后在加上在本行的位置就能得出结果:公式为(j + 1) * j / 2 + i + 1;

if (flag == true){cout << (mid + 1) * mid / 2 + i + 1;break;}

4.在找得时候我们用二分的方法来找!!节省时间!!!


qwq,博主是个大笨蛋找不到规律根本Orz

全部代码:

#include <iostream>
using namespace std;
int n;
long long C(int a, int b)
{long long x = 1, y = 1;for (int i = a, j = b; j >= 1; i--, j--){x = x * i;y = y * j;if (x / y > n){ // 如果在这过程中已经大于N了,就没必要再继续了return x / y;}}return x / y;
}
// 一个十分简单的算组合数的函数
int main()
{cin >> n;bool flag = false;for (int i = 0; i <=14; i++) // 遍历行{long long L = 2 * i, // 为什么是2*iR = n, mid;while (L <= R){mid = (L + R) / 2;if (C(mid, i) > n){R = mid - 1;}else if (C(mid, i) < n){L = mid + 1;}else if (C(mid, i) == n){flag = true;break;}}if (flag == true){cout << (mid + 1) * mid / 2 + i + 1;break;}}system("pause");
}
http://www.hrbkazy.com/news/42734.html

相关文章:

  • 学做饼干网站软文300字介绍商品
  • 建设一个网站的具体步骤免费投放广告的平台
  • 网站开发哪里接单简述如何优化网站的方法
  • 云速建站可以建个人网站吗技术培训班
  • 淘宝网站建设类别北京网站建设公司哪家好
  • 建立个网站需要多少钱下载百度app并安装
  • 版权申请网站百度上传自己个人简介
  • 微信做网站支付工具百度快照推广排名
  • 天津靠谱点的装修公司上海网站seo招聘
  • 网站做收录是什么意思合肥网站推广助理
  • 专业做网站报价app拉新推广平台渠道
  • wordpress哪种语言网站优化哪家好
  • 网站设计建设制作合肥做网站推广
  • 河南建设网站公司简介千锋教育培训
  • deamweaver怎么做网站大数据培训课程
  • mvc在网站开发中的应用太原百度快速排名提升
  • 做购物比价的网站b站视频怎么快速推广
  • 深圳专业做网站多少钱成年学校培训班
  • 开发网站的目标网络优化公司排名
  • 广州天河网站开发公司广东免费网络推广软件
  • 网站服务器维护 价目表国内最好用的免费建站平台
  • 国外网站有哪些推荐的站长工具国色天香
  • 做soho一定要做网站吗百度推广售后服务电话
  • 专做商铺中介网站短期培训学什么好
  • 国企网站建设要求微信营销的方法和技巧
  • 永久免费网站服务器推广关键词优化公司
  • 网站建设职位seo怎么优化简述
  • 小学课程建设网站目标生成关键词的软件
  • 常州网站seo优化大师电脑版
  • 天津自动网站建设调试app推广全国代理加盟