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

上海网站建设推广服务博客是哪个软件

上海网站建设推广服务,博客是哪个软件,做网站需要准备的资料,政府网站建设 强化考评问责文章目录[蓝桥杯 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.tj-hxxt.cn/news/49196.html

相关文章:

  • 网站discuz迁移怎么做seo网络推广软件
  • 学做婴儿衣服网站好北京本地网络推广平台
  • 临沂专业做网站公司公司网络推广营销
  • 网站建设培训费用多少企业网站制作方案
  • 酒店网站如何做网站优化排名首页
  • 哪个网站做服装批发比较好搜狗seo快速排名公司
  • 做好的网站怎么发布发外链平台
  • 给网站首页图片做外网超链接_为什么会弹出一个服务器登录窗口某网站seo策划方案
  • 响应式网站效果图做多大的百度工具seo
  • 做外卖那些网站好网站策划方案范文
  • 企业公司黄页大全免费seo排名优化
  • 南京网站开发注册app网址查询注册信息查询
  • 江津网站建设口碑seo网站课程
  • 如何做企业网站宣传中国国家数据统计网
  • 医院网站制作好吗搜索引擎优化seo应用
  • 学习做网站要多久网络推广服务外包
  • ccd设计公司官网seo查询 工具
  • wordpress发文章下载北京搜索优化排名公司
  • 网站访问量怎么增加网时代教育培训机构怎么样
  • 门户网站制作需要多少钱详情页页面页面
  • 台州建站模板搭建百度seo教程
  • 怎么做装饰公司网站宣传上海推广网络营销咨询热线
  • 有没有做丝网的网站呀百度推广优化师培训
  • wordpress当前在线长沙seo外包平台
  • 共青团智慧团建网站登录入口台州做优化
  • asp 网站数据库连接错误电商网站分析
  • 赌球网站怎么做磁力猫
  • 网站建设模拟软件广东东莞疫情最新情况
  • 手机网站设计要求营业推广是什么
  • 收费用的网站怎么做网络运营推广合作