首页 > 其他分享 >蓝桥杯 历届真题 杨辉三角形【第十二届】【省赛】【C组】

蓝桥杯 历届真题 杨辉三角形【第十二届】【省赛】【C组】

时间:2024-04-07 17:33:38浏览次数:22  
标签:10 真题 int long 蓝桥 第三列 杨辉三角 数据 我们

资源限制

内存限制:256.0MB   C/C++时间限制:1.0s   Java时间限制:3.0s   Python时间限制:5.0s


思路:

        由于我第一写没考虑到大数据的原因,直接判断导致只得了40分,下面是我的代码:

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e3+10;
int n,m,t,d;
int a[N][N],b[N];
string s; 
signed main(){
	cin>>n;
	int flag=0;
	for(int i=1;;i++){
		for(int j=1;j<=i;j++){
			if(j==0||j==i)a[i][j]=1;
			else{
				a[i][j] = a[i-1][j-1]+a[i-1][j];
			}
			m++;
			if(a[i][j]==n){
				flag=1;
				break;
			}
		}
		if(flag)break;
	} 
	cout<<m;
	return 0;
}

 数据10的9次方,就算是二位数组也开不到那儿,但是我们通过观察,第二列的数据发现,从第二行开始向下是1,2,3,4.。。。。

那么我们要找的数据一定可以在这一列找到,但不一定是第一出现的。

我们再观察第三列的数据,发现规律值位n*(n-1)/2;那么我们就有思路了,观察第三列往后的列数据,递增幅度都比第三列大,那么我们可以求出按照第三列的数据规律求出10的九次方的极限行数,即 n*(n-1)/2<=10^9;   我们n取44800;

这是什么意思呢,也就是说44800行的数据我们可以按照常规求法一个一个去判断是第几个出现,那么如果这44800行都没有找到过它,那它,就一定会出现在第二列按顺序遍历到它的那一行,至于它前面有几个数,通过观察看出就是把每一行的个数加起来再加2,1+2+3+4+。。。公式是(1+n)*n/2;

但是最后还应该考虑到我们二维数组开多大的问题,因为我们这里每个数的状态只会被下一行的数据用一次,所以我们根本不用开[N][N],直接记录上一行和当前行的数据就可以了,[2][N];

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e5+10;
int n,m,t,d;
int a[2][N],b[N];
string s; 
signed main(){
	cin>>n;
	int flag=0;
	for(int i=1;i<=44800;i++){
		for(int j=1;j<=i;j++){
			if(j==0||j==i)a[i%2][j]=1;
			else{
				a[i%2][j] = a[(i-1)%2][j-1]+a[(i-1)%2][j];
			}
			m++;
			if(a[i%2][j]==n){
				flag=1;
				cout<<m<<endl;
				return 0;
			}
		}
	}
	m = (n+1)*n/2+2;
	cout<<m<<endl;
	return 0;
}

标签:10,真题,int,long,蓝桥,第三列,杨辉三角,数据,我们
From: https://blog.csdn.net/qq_65535252/article/details/137432907

相关文章

  • 2003年重邮801信号与系统考研真题与详解
    文章目录前言一对一极速提分辅导2003年重邮801信号与系统考研真题与详解前言重庆邮电大学801信号与系统考研真题与详解系列已制作完毕,现将逐步以免费的方式更新在微信公众号、博客上,其特点如下:①质量高:所有文字、公式、图形均自己编写、制作,确保清晰、质量高、掌握......
  • 第十四届蓝桥杯省赛B组
    目录试题A:2023题解正确题解试题B:硬币兑换试题C:松散子序列题解:动态规划试题D:管道题解:二分+区间合并试题E:保险箱试题A:2023题解a='2023'cnt,i,k=0,0,0forjinrange(12345678,98765433):whilei<len(a):whilek<8:ifa[i]==str(j)[k]:......
  • 并查集——蓝桥杯备赛【python】
    一、合根植物试题链接:[蓝桥杯2017国C]合根植物问题描述星球的一个种植园,被分成m×n个小格子(东西方向m行,南北方向n列)。每个格子里种了一株合根植物。这种植物有个特点,它的根可能会沿着南北或东西方向伸展,从而与另一个格子的植物合成为一体。如果我们告诉你哪些小......
  • 差分和前缀和——蓝桥杯备赛
    一、大学里的树木要打药问题描述教室外有N棵树,根据不同的位置和树种,学校要对其上不同的药。因为树的排列成线性,且非常长,我们可以将它们看作一条直线给他们编号。树的编号从0∼N−1且N<1e6。对于树的药是成区间分布,比如3∼5号的树靠近下水道,所以他们要用驱蚊虫的药,20......
  • 蓝桥杯,省赛,动态规划专题,青蛙,更小的数,松散子序列,接龙数列
    #include<bits/stdc++.h>usingnamespacestd;constintN=1e5+9;doublex[N],a[N],b[N];doubledp[N][5];intmain(){intn;cin>>n;for(inti=1;i<=n;i++)cin>>x[i];for(inti=1;i<=n-1;i++)cin>>a[i]>>b[i......
  • 中国电子学会(CEIT)2021年12月真题C语言软件编程等级考试四级(含详细解析答案)
    中国电子学会(CEIT)考评中心历届真题(含解析答案)C语言软件编程等级考试四级2021年12月编程题五道 总分:100分一、移动路线(25分)桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格......
  • 蓝桥杯嵌入式2017年第八届省赛主观题解析
    1 题目2  代码/*USERCODEENDHeader*//*Includes------------------------------------------------------------------*/#include"main.h"#include"rtc.h"#include"tim.h"#include"gpio.h"/*Privateincludes--......
  • [蓝桥杯 2022 国 B] 齿轮(优化枚举)
        根据题目描述,如果采用dfs暴力做法枚举所有方案,肯定会超时,因此我们需要优化枚举,我们都知道在同一组共同转动的齿轮中,线速度相等,因此角速度的比值就是半径的反比,因此我们只需要找到对于每个齿轮作为起始齿轮,只需要找到其倍数半径是否存在即可,而倍数上限就是假设存在......
  • [蓝桥杯 2021 省 B] 杨辉三角形(二分查找+枚举)
        我们之前学过有关杨辉三角的一些性质,我们知道杨辉三角某个数等于左上和右上两个数相加,但是如果我们按照这个性质依次枚举每行每列,就会很容易超时,因此我们可以枚举列,再二分查找行来寻找满足要求的答案,我们可以先将列数到30,基本涵盖了所有的答案,通过组合数性质来二......
  • [蓝桥杯 2022 省 B] 李白打酒加强版(三维动态规划)
        通过题目描述,我们可以知道这道题目涉及到某种状态时候的方案数,因此我们可以用动态规划来解决问题,并且我们需要注意到酒的状态,因此我们可以用三维数组来存储状态,我们知道N,M最大不会超过100,并且如果酒超过了100斗,即使遇到100朵花也无法喝完,因此只需要定义大小都为1......