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

数组基础(c++)

第1题     精挑细选     时限:1s 空间:256m

小王是公司的仓库管理员,一天,他接到了这样一个任务:从仓库中找出一根钢管。这听起来不算什么,但是这根钢管的要求可真是让他犯难了,要求如下:

1、 这根钢管一定要是仓库中最长的;

2、 这根钢管一定要是最长的钢管中最细的;

3、 这根钢管一定要是符合前两条的钢管中编码最大的(每根钢管都有一个互不相同的编码,越大表示生产日期越近)。

相关的资料到是有,可是,手工从几百份钢管材料中选出符合要求的那根……

要不,还是请你编写个程序来帮他解决这个问题吧。

输入格式

文件第一行为一个整数 ( ),表示仓库中所有钢管的数量。

之后 行,每行三个整数,分别表示一根钢管的长度(以毫米为单位)、直径(以毫米为单位)和编码(一个9位整数)。

输出格式

文件中只有一个9位整数,表示选出的那根钢管的编码。

输入/输出例子1

输入:

4

3000 50 872198442

3000 45 752498124

2000 60 765128742

3000 45 652278122

输出:

752498124

#include<bits/stdc++.h>
using namespace std;
long long n,a[100005],b[100005],c[100005],maxx=0,minn=99999,maxa=0;
int main(){
    scanf("%lld",&n);
    for(int i=1;i<=n;i++){
        scanf("%lld%lld%lld",&a[i],&b[i],&c[i]);
        if(a[i]>maxx)maxx=a[i];
    }
    for(int i=1;i<=n;i++){
    	if(a[i]==maxx&&b[i]<minn)minn=b[i];
	}
    for(int i=1;i<=n;i++){
        if(a[i]==maxx&&b[i]==minn&&c[i]>maxa)maxa=c[i];
    }
    cout<<maxa;
    return 0;
}

第2题     外币兑换     时限:1s 空间:256m

小明刚从美国回来,发现手上还有一些未用完的美金,于是想去银行兑换成人民币。可是听说最近人民币将会升值,并从金融机构得到了接下来十二个月可能的美元对人民币汇率,现在,小明想要在接下来一年中把美金都兑换成人民币,请问最多能得到多少人民币?

输入格式

输入的第一行是一个实数N(1.00<=N<=100.00),表示小明现有的美金数量。
接下来一行,包含12个实数ai,表示接下来十二个月的美元对人民币汇率。

输出格式

输出一个小数R,表示小明最多能获得的人民币数量,结果保留两位小数。

输入/输出例子1

输入:

46.91

6.31 6.32 6.61 6.65 5.55 5.63 6.82 6.42 6.40 5.62 6.78 5.60

输出:

319.93

#include<bits/stdc++.h>
using namespace std;
double n,a[1005],maxx=0;
int main(){
    cin>>n;
    for(int i=1;i<=12;i++){
    	cin>>a[i];
    	if(a[i]>maxx)maxx=a[i];
	}
	printf("%.2lf",maxx*n);
    return 0;
}

第3题     相对高度     时限:1s 空间:256m

小明是班上的体育委员,体育老师要求小明记录班上每位同学的身高。但小明的记录方式让体育老师很为难,因为他只记录了每位同学与自己身高的差值,正数表示比小明高的,负数表示比小明矮的。现在,已知了小明的身高,和每位同学与小明身高的差值,求每位同学的身高。体育老师赚麻烦,找到学编程的你,你能帮助他吗?

输入格式

第一行两个数HN1<=N<=100),其中H为小明的身高,N表示班上还有N位同学.

第二行有N个整数,第 i个整数表示第i个同学与小明身高的差值。 

输出格式

   N+1个数,即全班同学的身高。 (保留2位小数)

输入/输出例子1

输入:

 1.42  3

 0.02  0.25  -0.12

输出:

 1.42 1.44 1.67 1.30

#include<bits/stdc++.h>
using namespace std;
long long m;
double n,a[1500];
int main(){
	cin>>n>>m;
	printf("%.2lf ",n); 
	for(int i=1;i<=m;i++){
		cin>>a[i];
		if(a[i]<0)printf("%.2lf ",n-a[i]);
		else printf("%.2lf ",n+a[i]);
	}
	return 0;
}

第4题     小鱼的数字游戏     时限:1s 空间:256m

小鱼最近被要求参加一个数字游戏,要求它把看到的一串数字 ai(长度不一定,以 0 结束),记住了然后反着念出来(表示结束的数字 0 就不要念出来了)。这对小鱼的那点记忆力来说实在是太难了,你也不想想小鱼的整个脑袋才多大,其中一部分还是好吃的肉!所以请你帮小鱼编程解决这问题。

输入格式

一行内输入一串整数,以 0 结束,以空格间隔。

输出格式

一行内倒着输出这一串整数,以空格间隔。

输入/输出例子1

输入:

3 65 23 5 34 1 30 0

输出:

30 1 34 5 23 65 3

样例解释

数据规模与约定

对于 100%的数据,保证0≤ai≤231−1,数字个数不超过 100

#include<bits/stdc++.h>
using namespace std;
long long a[100005];
int main(){
	for(long long i=1;;i++){
		scanf("%lld",&a[i]);
		if(a[i]==0){
			for(long long j=i-1;j>=1;j--){
				printf("%lld ",a[j]);
			}
			return 0;
		}
	}
	return 0;
}

第5题     最长平台     时限:1s 空间:256m

S来到一块阶梯地,这一块阶梯地具有连续的n小块地,每一小块地都有一定的高度,如果连续m段地的高度相同,那么我们称这连续一段地的平地值为m。现在给出这一块阶梯地每一块地的高度值,请试编写一个程序,把这块阶梯地平地值最大者找出来并输出该平地值

输入格式

第一行一个正整数n<=10000.

第二行n个正整数,表示地的高度。

输出格式

最大平地值

输入/输出例子1

输入:

10

1 2 2 3 3 3 4 5 5 6

输出:

3

#include<bits/stdc++.h>
using namespace std;
long long n,a[100005],maxx=0,s=1;
int main(){
    scanf("%lld",&n);
    for(long long i=1;i<=n;i++){
        scanf("%lld",&a[i]);
    }
    for(long long i=1;i<n;i++){
        if(a[i]==a[i+1]){
            s++;
            if(s>maxx){
                maxx=s;
            }
        }
        else s=1;
    }
    printf("%lld",maxx);
    return 0;
}

第6题     可爱的小鱼     时限:1s 空间:256m

人比人,气死人;鱼比鱼,难死鱼。小鱼最近参加了一个“比可爱”比赛,比的是每只鱼的可爱程度。参赛的鱼被从左到右排成一排,头都朝向左边,然后每只鱼会得到一个整数数值,表示这只鱼的可爱程度,很显然整数越大,表示这只鱼越可爱,而且任意两只鱼的可爱程度可能一样。由于所有的鱼头都朝向左边,所以每只鱼只能看见在它左边的鱼的可爱程度,它们心里都在计算,在自己的眼力范围内有多少只鱼不如自己可爱呢。请你帮这些可爱但是鱼脑不够用的小鱼们计算一下。

输入格式

第一行输入一个整数 n,表示鱼的数目,n<=100。

第二行内输入 n个整数,用空格间隔,依次表示从左到右每只小鱼的可爱程度,数据范围[0,10^8]。

输出格式

一行输出 n个整数,用空格间隔,依次表示每只小鱼眼中有多少只鱼不如自己可爱。

输入/输出例子1

输入:

6

4 3 0 5 1 2

输出:

0 0 0 3 1 2

#include<bits/stdc++.h>
using namespace std;
long long n,a[100],sum[100];
int main(){
    scanf("%lld",&n);
    for(long long i=0;i<n;i++){
        cin>>a[i];
        for(long long j=i;j>0;j--)
            if(a[i]>a[j-1])
                sum[i]++;
    }
    for(long long i=0;i<n;i++)
        cout<<sum[i]<<' ';
    return 0;
}

第7题     挡住视线     时限:1s 空间:256m

午饭时间在饭堂排队打饭。一行队伍中有N个人,小明站在队伍中第k个位置,身高高于小明的同学就会挡住小明的视线。请找出队伍中离小明最近且挡住小明视线的人。

输入格式

    第一行有一个正整数N,表示队伍中的人数。

    第二行有N个正整数ai,依次给出队伍中排队者的身高。

    第三行有一个正整数k,表示小明在队伍中的位置。

【数据范围】

100%数据, 1<= N<=100000, k<=100000,100<= ai<200;

输出格式

输出小明的前面离小明最近且挡住小明视线的人的位置。如果前面没有人挡住小明视线,就输出-1。

输入/输出例子1

输入:

6

132  127  134  127  137  140

4

输出:

3

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100005],k;
int main(){
    scanf("%lld",&n);
    for(long long i=1;i<=n;i++){
        scanf("%lld",&a[i]);
    }
    scanf("%lld",&m);
    for(long long i=m-1;i>=1;i--){
        if(a[m]<a[i]){
            printf("%lld",i);
            return 0;
        }
    }
    printf("-1");
    return 0;
}

第8题     中位数     时限:1s 空间:256m

中位数指的是一组数,如果按照大小排序排好后最中间的那个数的值,如果有偶数个元素,那么就是最中间两个数的平均数!

比如:2 5 8 1 6,排序后的结果为1 2 5 6 8,那么这组数的中位数就是5!

再比如:8 9 1 2 3 0,排序后的结果为0 1 2 3 8 9,那么这组书的中位数就是(2+3)/2=2.5  

输入格式

第一行:一个整数n代表有n个数(n≤100000)

第二行:n个数的值,数据范围为[0,100]

输出格式

中位数(结果保留1位小数)

输入/输出例子1

输入:

5
2 5 8 1 6

输出:

5.0

#include<bits/stdc++.h>
using namespace std;
long long n,a[100005],t=0;
int main(){
    scanf("%lld",&n);
    for(int i=1;i<=n;i++){
        scanf("%lld",&a[i]);
    }
	sort(a+1,a+n+1);
    if(n%2==0){
    	printf("%.1lf",(a[n/2]+a[n/2+1])/2.0); 
    }
    else {
    	printf("%.1lf",a[n/2+1]/1.0);
    }
    return 0;
}

第9题     年龄与疾病     时限:1s 空间:256m

某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理,按照0-18岁、19-35岁、36-60岁、61以上(含61)四个年龄段统计的患病人数以及占总患病人数的比例。

输入格式

2行,第一行为过往病人的数目n(0 < n <= 1000),第二行为每个病人患病时的年龄。

输出格式

按照0-18、19-35、36-60、61以上(含61)四个年龄段输出该段患病总人数以及人数占总患病人数的比例,以百分比的形式输出,精确到小数点后两位。每个年龄段占一行,共四行。

输入/输出例子1

输入:

10

1 11 21 31 41 51 61 71 81 91

输出:

2 20.00%

2 20.00%

2 20.00%

4 40.00%

#include<bits/stdc++.h>
using namespace std;
double s1,s2,s3,s4;
long long n,a;
int main(){
    scanf("%lld",&n);
    for(long long i=1;i<=n;i++){
        scanf("%lld",&a);
        if(a>=0&&a<=18)s1++;
        else if(a>=19&&a<=35)s2++;
        else if(a>=36&&a<=60)s3++;
        else if(a>60)s4++;
    }
    cout<<s1<<" ";
    printf("%.2lf",100.0*s1/n);
    cout<<"%"<<'\n';
    cout<<s2<<" ";
    printf("%.2lf",100.0*s2/n);
    cout<<"%"<<'\n';
    cout<<s3<<" ";
    printf("%.2lf",100.0*s3/n);
    cout<<"%"<<'\n';
    cout<<s4<<" ";
    printf("%.2lf",100.0*s4/n);
    cout<<"%";
    return 0;
}

第10题     愧疚指数     时限:1s 空间:256m

佛山创文要求大家要遵守交通规则,发扬尊老爱幼精神。文文想做一个关于公交文化的调查。他专门为排队上车发明了一套叫做“愧疚指数”的分析系统,就是在队列中把人分为三等:第一等为优先级最高,最需要照顾的老人、小孩、孕妇等,应该最优先上车,优先代号为1;第二等是普通女人,为了发扬绅士风度,男人是要让女人先上车的,但优先级低于一等,优先代号为2;第三等是普通男人,优先级最低,应该排在最后面,优先代号为3。所谓的“愧疚指数”是指队列中一个人后面有多少人的优先级比他高,如队列中有5个人分别为:3 2 1 2 1,那么这5个人的“愧疚指数”分别为:4 2 0 1 0。现在已经知道一个队列,请你帮文文算出队列中每个人的“愧疚指数”。

输入格式

第一行是一个正整数n,表示一共有多少个人排队。

 第二行有n个用空格隔开的正整数,它们从左至右给出了队列中n个人的优先代号。

对于80%的数据,n≦10000;

 对于100%的数据,n≦200000。

输出格式

 输出一行:有n个用空格分开的正整数,代表队列中每个人的“愧疚指数”。

输入/输出例子1

输入:

5

3 2 1 2 1

输出:

4 2 0 1 0

#include<bits/stdc++.h>
using namespace std;
long long s1,s2,a[1000001],b[1000001],n;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=n;i>=1;i--){
		if(a[i]==1){
			b[i]=0;
			s1++;
		}
		if(a[i]==2){
			b[i]=s1;
			s2++;
		}
		if(a[i]==3)b[i]=s2+s1;
	}
	for(int i=1;i<=n;i++)cout<<b[i]<<" ";
	return 0;
}


http://www.kler.cn/news/323629.html

相关文章:

  • 爬虫技术深潜:探究 JsonPath 与 XPath 的语法海洋与实战岛屿
  • VOC2007 的ImageSets/Main目录下通常有四个文件test.txt val.txt train.txt trainval.txt
  • Linux部署RabbitMQ
  • Momenta中间件C++一面-面经总结
  • Java集合(下)
  • 这条挣钱的路,离我好遥远啊
  • CSS05-复合选择器
  • 鞋类分类系统源码分享
  • 胡超:引领中美文化、创意与能源合作的关键人物
  • 【计算机网络 - 基础问题】每日 3 题(二十五)
  • MurmurHash 算法
  • 众数问题,
  • JAVA并发编程系列(11)线程池底层原理架构剖析
  • 【春秋云境】CVE-2024-23897-Jenkins 2.441之前版本存在任意文件读取漏洞
  • RuoYi若依框架学习:多环境配置
  • 电子秤PCBA方案应用解决方案设计
  • Java面试:ArrayList 和 LinkedList 的区别是什么?谈谈你对ArrayList和LinkedList的理解
  • 500. 键盘行 哈希表 力扣 Python 难度指数:3
  • JavaScript 定时器与动画基础
  • DAY80服务攻防-中间件安全HW2023-WPS 分析WeblogicJettyJenkinsCVE
  • 旧衣回收小程序搭建,开发功能优势
  • CORDIC算法笔记整理
  • 全局中断总开关位与各个中断源对应的寄存器使能位开启顺序
  • Vscode把全部‘def‘都收起来的快捷键
  • Django 对数据库的增删改查
  • [译] K8s和云原生
  • `torch.utils.data`模块
  • PostgreSQL 向量扩展插件pgvector安装和使用
  • 高等数学 第11讲 多元函数偏导数的计算与应用_复合函数求偏导_隐函数求偏导_条件极值
  • 什么是原生IP?