数组综合应用(下标计数)C++

news2024/10/8 17:51:03

第1题     铅笔     时限:1s 空间:256m

桌面有n个盒子,第i个盒子有a[i]支铅笔。

你想要得到尽量多的铅笔,但是如果某两个盒子有相同数量的铅笔,那么你是不能同时拥有这两个盒子的。

问你最多可以得到多少支铅笔。

输入格式

第一行,一个整数n。 1<=n<=50。

第二行,n个整数,第i个整数是a[i]。 1<=a[i]<=10。

输出格式

一个整数。

输入/输出例子1

输入:

4

5 2 5 3

输出:

10

输入/输出例子2

输入:

3

5 5 5

输出:

5

#include<bits/stdc++.h>
using namespace std;
long long n,t,a[1000005],s; 
int main(){
    cin>>n;
    for(int i=1;i<=n;i++){
    	cin>>t;
    	a[t]=1;
	}
    for(int i=1;i<=50;i++){
    	if(a[i]==1)s+=i;
	}
	cout<<s;
    return 0;
}

第2题     号码牌     时限:5s 空间:256m

张老师班上有 位同学参加秋季运动会,老师为同学们定制了比赛专属号码牌,编号为 1N

 

生产号码牌的商家发货后,张老师发现号码牌少了 个号码,但是统计后发现,确实有 个号码牌,且所有号码牌的编号都在 [1,N]的范围内,但是有一个号码被错误的印刷成了另一个号码。

 

请编程帮老师找出这些号码牌中,缺失的号码和被错误印刷了 2次的号码。

输入格式

 行读入整数 N,代表号码牌的数量;

 

 2行读入 个号码,用空格隔开。

输出格式

输出 个整数,用空格隔开,第 个整数,代表缺失的号码,第 个整数代表被印刷了 次的号码。

输入/输出例子1

输入:

6

2 1 5 2 4 6

输出:

3 2

样例解释

数据范围

 

对于 100%的测试数据,满足 5N100000

 

所有测试点均满足读入的 个号码牌的数值均在 [1,N] 的范围内,且缺失的号码牌及被错误印刷 2次的号码牌均是唯一的。

#include<bits/stdc++.h>
using namespace std;
long long n,a[100000+5],b[100000+5],x,x1;
int main(){
    scanf("%lld",&n);
    for(int i=1;i<=n;i++){
    	scanf("%lld",&a[i]);
    	b[a[i]]++;
	}
	sort(a+1,a+n+1);
	for(int i=1;i<=n;i++){
		if(b[i]==0)x=i;
		if(b[i]==2)x1=i;
	}
	cout<<x<<" "<<x1;
    return 0;
}

第3题     侦察     时限:1s 空间:256m

小红通过简单的计算就求出了密码打开了沙盘,于是双方使用沙盘进行了攻城模拟。现在红有n个侦察兵,要从两支部队选派2个侦察兵去侦察小蓝部队驻守的城市。为了使得侦察兵能更好配合完成工作,小认为这2个侦察兵所在部队编号必须相差m
 现在已知n个侦察兵部队编号,请问小红有多少不同的选择方案(同一部队的不同士兵视为同一方案)

输入格式

1行,2个整数nm2<=n<=1000001<=m<=50)。

2行,n个整数,第i个整数表示第i个侦察兵部队编号1<=部队编号<=1000)。

输出格式

一个整数,表示不同的方案数。

输入/输出例子1

输入:

5  6

1  7  2  8  12

输出:

2

输入/输出例子2

输入:

6  8

1  1  9  9  2  8

输出:

1

样例解释

样例1解释:第1个侦察兵可以跟第2个侦察兵搭档,第3个侦察兵可以跟第4个侦察兵搭档,所以有2种不同选择方案。

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n,k;
    cin>>n>>k;
    int a[n+1];
    for(int i=1;i<=n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    int len=unique(a+1,a+n+1)-a;
    int count=0;
    for(int i=1;i<len;i++){
        for(int j=i+1;j<=len;j++){
            if(a[j]-a[i]==k){
                count++;
                break;
            }
        }
    }
    cout<<count;
    return 0;
}

第4题     战功     时限:1s 空间:256m

通过侦察,小红已经基本了解了对方的兵力部署情况,现在派遣特种部队进攻小蓝的模拟城市。通过几十分钟的攻守战模拟,小红的特种部队顺利攻下了小蓝的A城。在战斗中,每个模拟士兵都立下不小战功。现在小红想根据每个士兵的战功排名来论功行赏。
    例如有四名士兵,战功值分别为50、80、50、30分,则80分的士兵为第一名,50分的两名士兵均为第二名,30分的士兵为第四名。
请你编写一个程序,计算每个士兵在这种排名方式之下的名次。

输入格式

第一行为一个整数n,表示参战的士兵数,1<=n<=1000000,第二行为n个整数,表示每位士兵的战功值(战功值<=1000000)。

输出格式

一行,表示每位士兵的名次,一个空格隔开。

输入/输出例子1

输入:

4

50 80 50 30

输出:

2 1 2 4

#include<bits/stdc++.h>
using namespace std;
long long n,a[1000005],b[1000005],maxx=0,minn=1000005,xx=1,x;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
		b[a[i]]++;
		maxx=max(maxx,a[i]),minn=min(minn,a[i]);
	}
	for(int i=maxx;i>=minn;i--){
		if(b[i]>=1){
			x=b[i];
			b[i]=xx;
			xx+=x;
		}
	}
	for(int i=1;i<=n;i++){
		cout<<b[a[i]]<<" ";
	}
	return 0;
}

第5题     社团交集     时限:5s 空间:256m

HJ小学信息学社团每个同学都有且仅有一个数字编号(1~1000),现在帅气的吴老师准备举办n个学习项目,信息学社团的每个同学都参加项目且可以参加多个项目。问:同时参加所有项目的同学有哪些?请从小到大输出他们的编号。

输入格式

第一行有1个正整数n1<=n<=100)表示有n个学习项目。

接下来的n行每行第一个整数ki1<=ki<=1000)表示第i个项目的同学人数,后面有ki个正整数,表示项目中同学的编号(不超过1000)。

输出格式

输出同时参加所有项目的同学的编号,从小到大。

输入/输出例子1

输入:

3

5 6 2 8 3 9

4 1 2 3 6

4 6 8 2 1

输出:

2  6

#include<bits/stdc++.h>
using namespace std;
long long n,m,a[100005],b[100005];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>m;
		for(int j=1;j<=m;j++){
			cin>>a[i];
			b[a[i]]++;
		}
	}
	for(int i=1;i<=1000;i++){
		if(b[i]==n)cout<<i<<" ";
	}
    return 0;
}

第6题     优秀的作品     时限:5s 空间:256m

博爱小学举办书法大赛,学校一共收到了 N 个同学的作品,并给作品编号 1∼N

 N幅作品被放到了学校的展厅展览,并请全校同学进行公开投票。投票结束,学校收到了 M张投票,每张投票投给了 1幅参赛的作品;学校预计评比出一等奖、二等奖、三等奖 各 1名;

由于可能存在多个优秀作品得票数相同的情况,因此最终实际获奖名额可能会比预计多,这种情况下,学校会增加相应奖项等级的获奖名额。

比如,如果有 3位同学得票数并列第 1,这种情况学校会颁发出 个一等奖。

请编程统计出一等奖、二等奖、三等奖获奖作品的编号。

输入格式

 1行读入 个整数 和 M,分别代表参赛作品的数量和投票的数量;

 2行读入 个整数,第 个整数 Ai 代表了第 i张投票投给了编号为 Ai 的作品。

输出格式

输出 3 行,每行输出若干整数,用空格隔开;

 1 行输出一等奖获奖作品的编号,第 行输出二等奖获奖作品的编号,第 3行输出三等奖获奖作品的编号;

如果某个奖项有多个作品获得,那么该奖项的获奖作品编号按照编号值从小到大的顺序输出。

输入/输出例子1

输入:

8 15

3 3 3 4 4 4 6 6 8 8 7 7 5 1 2

输出:

3 4

6 7 8

1 2 5

输入/输出例子2

输入:

10 16

6 5 7 2 2 1 1 7 4 2 2 7 7 2 4 4

输出:

2

7

4

样例解释

号作品和 号作品各获得 3票,并列第 1,评选为一等奖;

号作品、号作品、号作品各获得 票,并列第 ,评选为二等奖;

号作品、号作品、号作品各获得 票,并列第 ,评选为三等奖;

数据范围

对于 100%的数据,6≤N,M≤1000001≤Ai≤N

测试数据确保统计后一等奖、二等奖、三等奖至少各有 1 人。

#include<bits/stdc++.h>
using namespace std;
long long n,m,t,a[100005],maxx1,maxx2,maxx3; 
int main(){
	scanf("%lld%lld",&m,&n);
	for(int i=1;i<=n;i++){
		scanf("%lld",&t);
		a[t]++;
	}	
	for(int i=1;i<=m;i++){
		maxx1=max(maxx1,a[i]);
	}
	for(int i=1;i<=m;i++){
		if(a[i]!=maxx1){
			maxx2=max(maxx2,a[i]);
		}
	}
	for(int i=1;i<=m;i++){
		if(a[i]!=maxx1&&a[i]!=maxx2){
			maxx3=max(maxx3,a[i]);
		}
	}
	for(int i=1;i<=m;i++){
		if(a[i]==maxx1){
			cout<<i<<" ";
		}
	}
	cout<<'\n';
	for(int i=1;i<=m;i++){
		if(a[i]==maxx2){
			cout<<i<<" ";
		}
	}
	cout<<'\n';
	for(int i=1;i<=m;i++){
		if(a[i]==maxx3){
			cout<<i<<" ";
		}
	}
    return 0;
}

第7题     餐饮服务质量打分     时限:1s 空间:256m

假设有40个学生被邀请来给餐厅的饮食和服务质量打分,分数划分为1~1010个等级(1表示最低分,10表示最高分),编程统计并如下格式输出餐饮服务质量调查结果。

Grade  Count   Histogram

1       5          *****

2       10        **********

3       7          *******

···

输入格式

40个数。

输出格式

11行。GradeCountHistogram和各个数据都占一个制表符(8位)。

输出格式:printf("%-8d%-8d",i,a[i]);

输入/输出例子1

输入:

5 7 9 8 7 6 8 9 10 7

9 5 8 10 9 6 8 5 9 7

6 10 5 9 8 9 7 7 9 8

8 6 9 9 9 8 8 7 9 5

输出:

Grade      Count      Histogram

1       0       

2       0       

3       0       

4       0       

5       5       *****

6       4       ****

7       7       *******

8       9       *********

9       12        ************

10        3       ***

#include<bits/stdc++.h>
using namespace std;
int x,a[15];
int main(){
	for(int i=0;i<40;i++){
		cin>>x;
		a[x]++;
	}
	printf("Grade      count      Histogram\n");
	for(int i=1;i<=10;i++){
		printf("%-8d%-8d",i,a[i]);
		for(int j=0;j<a[i];j++)cout<<"*";
		cout<<'\n';
	}
	return 0;
}

第8题     集卡册     时限:1s 空间:256m

小胡喜欢收集奥特曼卡片,对每个奥特曼的技能,身高,体重都如数家珍。

为了能把这些卡片带给小伙伴们炫耀,他还特地买了一本集卡册。集卡册一共能装 16 张卡片,每次出门他都会装满这本集卡册,但是有时粗心的小胡会放入两张相同的卡片。

如下所示:

 

image.png

上面每个大写字母代表一种卡片,其中第一张和第五张相同。

输入格式

输入 16个连续的大写字母,代表放入的 16 张卡片的种类。

输出格式

如果 16 张卡片各不相同,输出 different

如果有 2张卡片的种类一样,以由小到大的顺序输出 2 张相同卡片的编号, 2 个位置序号之间以空格隔开。

输入/输出例子1

输入:

BCDEGHJKLBAUIOPQ

输出:

1 10

输入/输出例子2

输入:

ABCDEFGHIJKLMNOP

输出:

different

样例解释

【样例 1 解释】

十六张卡片中第一张和第十张都是 B,所以答案是 1 10。

【数据说明】

相同的卡片最多只会有一种,且最多只有2 

#include<bits/stdc++.h>
using namespace std;
string s;
long long s1=0,a[3];
bool f=0;
int main(){
	cin>>s;
	for(long long i=0;i<s.size();i++){
		for(long long j=i+1;j<s.size();j++){
			if(s[i]!=s[j]){
				f=1;
			}
			else {
				cout<<i+1<<" "<<j+1;
				return 0;
			}
		} 
	}
	if(f)printf("different");
    return 0;
}

第9题     三连击     时限:1s 空间:256m

 1,2,…,9共 9个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!

输入格式

三个数,A,B,C A<B<C

输出格式

若干行,每行 3个数字。按照每行第一个数字升序排列。

输入/输出例子1

输入:

1 2 3

输出:

192 384 576

219 438 657

273 546 819

327 654 981

输入/输出例子2

输入:

1 4 6

输出:

No!!!

#include<bits/stdc++.h>
using namespace std;
long long a[1000005],s1,s2,s3,l,x1,x2,x3,s;
int main (){
    cin>>x1>>x2>>x3;
    for(int i=1;i<=1000/x3;i++){
        s1=i*x1,s2=i*x2,s3=i*x3; 
        if(s2>999||s3>999){
        	break;
		}
        for(int j=1;j<=3;j++){
            a[s1%10]++;
            s1/=10;
        }
        for(int j=1;j<=3;j++){
            a[s2%10]++;
            s2/=10;
        }
        for(int j=1;j<=3;j++){
            a[s3%10]++;
            s3/=10;
        }
        for(int j=1;j<=9;j++){
        	if(a[j]!=1){
				l=1;
				break;
			}
		}
        for(int j=1;j<=9;j++){
        	a[j]=0;
		}
        if(!l){
			cout<<i*x1<<' '<<i*x2<<' '<<i*x3<<'\n';
			s++;
		}
        else l=0;
    }
    if(!s)cout<<"No!!!";
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2196879.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Css flex布局下 两端对齐与居中对齐

两端对齐 <view class"top"><view class"history"><image src"../../static/avatar/history.png" mode"" style"width: 70rpx;height: 70rpx;;"></image></view><view class"title…

【LeetCode】每日一题 2024_10_8 旅行终点站(哈希)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动&#xff01; 国庆结束了 . . . 力扣的每日一题也来到了终点站 题目&#xff1a;旅行终点站 代码与解题思路 func destCity(paths [][]string) string { // 国庆结束&#xff0c;旅途到了终点// 今天这道题算是一个小…

Qt Qml Map-地图绘制点与圆的切线

基于此源码替换 main.qml 文件https://download.csdn.net/download/qq_38159549/89860109https://download.csdn.net/download/qq_38159549/89860109 import QtQuick 2.5 import QtQuick.Window 2.2 import QtQuick.Controls 1.3 import QtLocation 5.3 import QtPositi…

【Linux】进程间通信——System V消息队列和信号量

一、消息队列 1.1 概念 进程间通信的原理是让不同进程看到同一份资源&#xff0c;资源种类的不同就决定了通信方式的差异。如果用管道通信&#xff0c;则资源是文件缓冲区&#xff1b;如果用共享内存&#xff0c;则资源是内存块 消息队列是由操作系统提供的资源&#xff0c;…

注意!新增一本期刊解除On Hold!仍有37本无法检索慎投!

On Hold期刊 2024年9月29日&#xff0c;小编从WOS数据库查到新增一本ESCI期刊《SOCAR Proceedings》解除On Hold标识 目前共37本期刊被标记&#xff0c;期刊整理如下&#xff0c;请注意避雷&#xff01; 01 解除风险期刊 SOCAR Proceedings • ISSN&#xff1a;2218-6867 •…

RAR解压缩软件的全面指南:压缩、加密、修复功能一应俱全

在日常文件管理中&#xff0c;压缩文件格式与解压缩工具是不可或缺的组成部分。而RAR格式&#xff0c;凭借其高效的压缩率、丰富的功能和灵活的文件管理方式&#xff0c;成为了用户最常使用的压缩格式之一。 作为处理RAR格式的专业工具&#xff0c;RAR解压缩软件具备压缩、加密…

马哥亲讲k8s集群搭建

文章目录 Docker和K8s安装1.docker安装2.安装cri-dockerd3.安装kubelet、kubeadm、kubectl4.整合kubelet和cri-dockerd 集群节点部署1.配置国内镜像站2.方式一&#xff1a;命令初始化1.kubeadm init2.保存初始化token3.拷贝/etc/kubernetes/admin.conf4.部署网络插件5.kubectl …

reactNative本地调试localhost踩坑

本地调试请求localhost的时候 1.要和电脑处在同一局域网下面&#xff08;同一个wifi&#xff09; 2.把baseURL的localhost改成命令行中ipconfig查询到的IPv4 地址 . . . . . . . . . . . . : &#xff08;例如&#xff09;192.168.1.103 如果报错Net Work Error&#xff0c;可…

算法知识点————贪心

贪心&#xff1a;只考虑局部最优解&#xff0c;不考虑全部最优解。有时候得不到最优解。 DP&#xff1a;考虑全局最优解。DP的特点&#xff1a;无后效性&#xff08;正在求解的时候不关心前面的解是怎么求的&#xff09;&#xff1b; 二者都是在求最优解的&#xff0c;都有最优…

如何扫描HTTP代理:步骤与注意事项

HTTP代理是一个复杂的过程&#xff0c;通常用于寻找可用的代理服务器&#xff0c;以便在网络中实现匿名或加速访问。虽然这个过程可以帮助用户找到适合的代理&#xff0c;但也需要注意合法性和道德问题。本文将介绍如何扫描HTTP代理&#xff0c;并提供一些建议和注意事项。 什…

剖析十大经典二叉树题目:C 语言代码实现与深度解读

&#x1f4af;前言 二叉树是数据结构中的重要概念&#xff0c;在算法和编程中有着广泛的应用。以下是十大经典的二叉树题目及其解析与 C 语言代码实现&#xff0c;同时也会说明题目来源。 二叉树的基本概念&#x1f449;【剖析二叉树】 目录 &#x1f4af;二叉树的遍历 ⭐前…

AI大模型真的是大龄程序员的新的出路吗?_大龄程序员ai创业

前言 在IT行业的高速运转中&#xff0c;许多资深程序员到了一定年龄后&#xff0c;会发现自己陷入了职业发展的瓶颈。尤其是在北京这样的大厂&#xff0c;业务波动、部门调整以及裁员风险&#xff0c;都让“40”的程序员们感受到了前所未有的压力。当昔日的技术热情逐渐消退&a…

在C#中使用适配器Adapter模式和扩展方法解决面向对象设计问题

之前有阵子在业余时间拓展自己的一个游戏框架&#xff0c;结果在实现的过程中发现一个设计问题。这个游戏框架基于MonoGame实现&#xff0c;在MonoGame中&#xff0c;所有的材质渲染&#xff08;Texture Rendering&#xff09;都是通过SpriteBatch类来完成的。举个例子&#xf…

新书速览|你好,C++

《你好&#xff0c;C》 本书内容 《你好&#xff0c;C》主要介绍C开发环境的搭建、基础语法知识、面向对象编程思想以及标准模板库的应用&#xff0c;特别针对初学者在学习C过程中可能遇到的难点提供了解决方案。全书共分13章&#xff0c;以一个工资程序的不断优化和完善为线索…

ChatGPT助力文献综述写作:提升效率与写作技巧!

文献综述在论文写作中占有举足轻重的地位。它不仅帮助我们梳理已有的研究成果&#xff0c;还能为自己的研究奠定基础。许多同学在撰写文献综述时常常感到头疼&#xff1a;如何处理海量的信息&#xff1f;如何将不同的观点有条理地整合起来&#xff1f;再加上学术语言的高要求&a…

定时任务。

引入 1.启动类上加上注解 2.新建一个定时任务的管理类&#xff0c;交给Spring管理 案例 案例1&#xff1a;fixedRate //上次任务开始到下次任务开始的时间间隔为5秒 //每隔5秒执行一次,不需要等上个任务执行完 Scheduled(fixedRate 5000) public void mask01() throws Inte…

python:web自动化工具selenium安装和配置(1)

UI自动化测试 UI自动化测试&#xff08;User Interface Automation Testing&#xff09;是一种通过编写脚本或使用自动化测试工具&#xff0c;对界面&#xff08;UI&#xff09;进行自动化测试的方法。原理主要是模拟用户打开客户端或网页的UI界面&#xff0c;自动化执行用户界…

【Java 问题】基础——泛型

接上文 泛型 47.Java 泛型了解么&#xff1f;什么是类型擦除&#xff1f;介绍一下常用的通配符&#xff1f; 47.Java 泛型了解么&#xff1f;什么是类型擦除&#xff1f;介绍一下常用的通配符&#xff1f; 什么是泛型&#xff1f; Java 泛型&#xff08;generics&#xff09;是…

REINFORCEMENT LEARNING THROUGH ACTIVE INFERENCE

摘要 强化学习&#xff08;RL&#xff09;的核心原则是智能体寻求最大化累积奖励之和。相比之下&#xff0c;主动推理&#xff0c;认知和计算神经科学中的一个新兴框架&#xff0c;提出代理人采取行动&#xff0c;以最大限度地提高有偏见的生成模型的证据。在这里&#xff0c;…

上门安装维修系统小程序开发详解及源码示例

随着智能家居和设备的普及&#xff0c;消费者对上门安装和维修服务的需求日益增加。为了满足这一市场需求&#xff0c;开发一款上门安装维修系统小程序成为了一种有效的解决方案。本文将详细介绍上门安装维修系统小程序的开发过程&#xff0c;并提供一个简单的源码示例&#xf…