CCF 201503-2 数字排序 C++ pay attention

CCF认证 201503-2 数字排序 100分 C++ 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二行包含n个整数,相邻的整数之间用一个空格分... 阅读详情

在这里插入图片描述

#include <iostream>
#include <algorithm>
using namespace std;
typedef struct point
{
	int num;
	int count;
}point;

bool cmp(point a,point b)
{
	if(a.count==b.count)
	{
		return a.num<b.num;
	}
	else
	{
		return a.count>b.count;
	}
}

int main()
{
	int n,b;
	int j=0;
	cin >> n;
	int a[1001]={0};
	point p[n];
	for(int i=0;i<n;i++)
	{
		cin >> b;
		a[b]++;
	}
	
	for(int i=0;i<=1000;i++)
	{
			if(a[i]!=0)
			{
				p[j].num=i;
				p[j].count=a[i];
				j++;
			}				
	}
	sort(p,p+j,cmp);
	for(int i=0;i<=j-1;i++)
	{
		cout << p[i].num << " " << p[i].count << endl;
	}
	return 0;
}

注意:sort中的第二个参数是要排序的最后一个元素下标+1,或者说被排序的是下标为[a,b)的元素,左闭右开。
这个题还要注意j++要在外面。因为如果在p[j++]里面,有两个这样的语句,就相当于j加了两次,多加了一次,错误。

二刷:先给数组排序,再把数值、计数结构体加入可变成数组,再根据制定规则进行排序,最后输出。

#include <iostream>
#include <algorithm>
#include <vector>
struct point{
	int num;
	int count;
};
bool cmp(point p1,point p2)
{
	if(p1.count==p2.count)
	     return p1.num<p2.num;
	else 
	     return p1.count>p2.count;
}
using namespace std;
int main()
{
	int n;
	cin >> n;
	int a[n];
	vector<point> v;
	for(int i=0;i<n;i++)
	{
		cin >> a[i];
	}
	sort(a,a+n);
	for(int i=0;i<n;i++)
	{
		point p;
		p.num=a[i];
		p.count=1;
		while(a[i+1]==a[i])
		{
			p.count++;
			i++;
		}
		v.push_back(p);
	}
	sort(v.begin(),v.end(),cmp);
	for(vector<point>::iterator it=v.begin();it!=v.end();it++)
	{
		cout << (*it).num << " " << (*it).count << endl;
	}
	return 0;
}

【WRF-CMAQ实战指南】从环境配置到测试案例运行全解析 本文详细解析了WRF-CMAQ从环境配置到测试案例运行的全过程,包括系统环境检查、依赖库安装、源码获取与项目初始化、关键配置技巧、编译实战与排错、测试案例运行验证等关键步骤。通过实战指南,帮助用户快速掌握WRF-CMAQ的安装和运行技巧,提升空气质量模拟的效率。 阅读详情

相关推荐

家长必看!用RouterOS轻松屏蔽不良网站,保护孩子上网安全

本文为家长提供了一份详细的RouterOS路由器配置指南,旨在通过技术手段保护儿童上网安全。文章核心介绍了如何利用RouterOS的DNS静态条目功能,轻松实现禁止访问特定不良网站,并结合防火墙时间规则,为孩子构建一个纯净、可控的家庭网络环境,操作简单,无需专业背景。

weixin_28363123的博客 1266

std::copy与ostream_iterator结合输出数据

#include <iostream> #include <algorithm> #include <vector> #include <string> using namespace std; int main() { vector<string> V; string tmp; while (getline(cin, tmp)) { if (tmp.size() <= 0) break; V.push_back(tmp

dawsonzz的博客 354

智能座舱芯片大乱斗:高通8155 vs 联发科MT8676 vs 华为麒麟990A,谁才是性价比之王?

本文深入对比了高通SA8155P、联发科MT8676与华为麒麟990A三款主流智能座舱芯片的性能、生态与成本。文章从CPU/GPU/NPU算力、开发生态、成本模型及典型应用场景出发,分析了各自在智能座舱领域的优势与适用性,为开发者与车企选型提供了实战参考,并探讨了智能座舱芯片未来的技术趋势。

yhn456789的博客 802

使用std::copy以及ostream_iterator快速对数组操作

以往对一个array进行输出时,往往使用for循环,虽然什么不好的地方,简单明了,但是代码中冗余行数太多。 先来一个输出array的例子 int buf[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; copy(buf, buf+10, ostream_iterator(cout, " ")); 够简单吧,有些时候输出的时候需要输出十六进制,并

懒得打字 2854

DeepSeek-OCR又更新:一起看下OCR1和OCR2

DeepSeek-AI 最近又又开源了,这次是DeepSeek-OCR2,结合之前发布的DeepSeek-OCR ,可以发现DeepSeek走出了一条不同于主流 OCR 方案的技术路线。第一代模型探索了**“视觉作为文本压缩介质”的可行性,打破了传统的序列长度限制;第二代模型则通过“Visual Causal Flow(视觉因果流)”**架构,将因果推理引入视觉编码器,解决了复杂排版下的阅读顺序难题。本文将从架构设计、逻辑结构、训练范式及工程实现四个维度,深度剖析这两代模型的异同与创新。

kakaZhui的博客 623

用SOLIDWORKS从零画一个履带机器人,手把手教你搞定底盘和传动

本文详细介绍了如何使用SOLIDWORKS从零开始设计履带式机器人,重点讲解底盘结构优化和传动系统设计的关键步骤。通过七个阶段的实战指南,包括前期规划、底盘建模、驱动系统装配、履带生成、动态模拟等,帮助工程师和爱好者掌握履带机器人的核心设计技巧,提升地形适应能力和动力效率。

weixin_30872499的博客 632

std::copy函数 和 ostream_iterator

unordered_map> options_and_arguments_list_; for (const auto& e : options_and_arguments_list_) {     const vector& arguments_list = e.second;     cout     copy(e.second.cbegin(), e.second.ce

qq_36479828的博客 1238

ArcGIS中地理坐标系与投影坐标系以及投影转换

简单介绍arcgis软件中坐标系定义、设置和常见问题。

weixin_41399650的博客 8万+

C++中使用copy和ostream_iterator来输出map的内容

对于copy配合iterator来输出一些容器的便利性是非常喜欢的,但是copy在处理map容器的时候,很容易导致编译出错,问题代码如下:  1 ostream& operator out, const pairconst int,int>& value)  2 {  3     out  4     return out;  5 }  6 int main()  7 {  8

reds1892的专栏 964

YOLOv8 智能交通违章检测 - 压线/越线行驶检测详解

本文提出了一种基于YOLOv8的智能交通违章检测方案,重点解决车辆压线/越线行驶的识别问题。系统采用多技术融合方案:YOLOv8检测车辆、ByteTrack跟踪轨迹、传统或深度学习方法识别车道线,并通过几何计算判断车辆是否违规跨越实线。文章详细介绍了技术难点(如车道线分类、透视变形处理)、判定流程、系统架构和核心代码实现,包括车道线检测、违章逻辑判断和可视化模块。同时指出了现有方案的局限性,建议通过引入逆透视变换和专用车道线分割模型来提升准确率。该纯视觉方案具有低成本、易部署的特点,适用于智能交通监控场景。

u010117029的博客 175

D457深度相机调试记录(max96712+max9295A)

使用max96712解串器解4路D457相机。采集深度相机Depth和RGB流。

navy2015_163的博客 1265

std::ostringstream的用法

转载为了更好得学习,感谢原创大佬,感谢原创大佬!感谢原创大佬! 原创 https://www.cnblogs.com/snowbook/p/5964434.html 使用stringstream对象简化类型转换 C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换。 为什么要学习 如果你已习惯了<stdio.h>风格的转换,也...

qq_39003748的博客 2510

【目标追踪】python背景模型减除法原理及其实现

python基于背景模型差法的视频目标追踪帧差法的问题:背景模型差法目标追踪原理1. 基本思路:2. 图例讲解:3. 存在的问题&如何解决:4. 最终效果预览第一步——调用摄像头:1. 使用opencv打开视频or摄像头:2. 读取逐帧图片:第二步——处理图片:1. 转换成灰度图:3. 累加权重重构背景:3. 计算像素差:3. 使用中值滤波和膨胀腐蚀去噪:3.1 中值滤波:3.2 图像腐蚀...

梁瑛平的博客 1948

Copy算法与ostream_iterator结合可以用于输出某个容器的元素

Copy算法与ostream_iterator结合可以用于输出某个容器的元素 copy 函数模板(算法) template<class InIt, class OutIt> OutIt copy(InIt first, InIt last, OutIt x); 本函数对每个在区间[0, last - first)中的N执行一次 *(x+N) = *(first + N), 返回 x ...

UniversityGrass的博客 377

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Android studio报错解决:Unable to load class: org.gradle.api.plugins.MavenPlugin(二十九)

本篇目的:Androidstudio报错解决:Unabletoloadclass:org.gradle.api.plugins.MavenPlugin。

Android系统攻城狮 3816

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C++ ostream_iterator简单使用

ostream_iterator使用

CHNIM的博客 1837

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

CCF 201503-2 数字排序

CCF 201503-2 数字排序 用简单的思路解决复杂问题 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 如下 问题描述   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。 输出格式   输出多行,每行包含两个整数,分别表示一个给定的整数和它出

weixin_43226448的博客 197

CSP认证201503-2 数字排序[C++题解]:哈希表、排序、结构体

刷题

阿正的梦工坊 458

CCF CSP 201503-2 数字排序 C++实现

问题描述   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。    输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。    输出格式   输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出...

ding_programmer的博客 563

201503-2 试题名称: 数字排序 (c++

//突破:用sort排序 #include<bits/stdc++.h> using namespace std; #define _for(i,a,b) for(int i=a;i<b;i++) const int N=1010; int b[N]={0}; typedef struct Piont{ int x;//数字 int y;//个数 }P; int cmp(P a,P b) { if(a.y!=b.y) return a.y>b.y; else retu

han29_的博客 180

CCF认证考试201503-2数字排序C++重载运算符实现

题目描述 试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述 给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式 输入的第一行包含一个整数n,表示给定数字的个数。 第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。 输出格式 输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数...

qfccCoder的博客 325

CCF认证 - 201503-2 - 数字排序 (C++代码实现)(100分)

C++相较于C来说是十分好用,这次题目与之前的公共钥匙盒都用到了一个知识点,即用结构体数组实现数组的分字段排序(所以要在数组中表示输入的数字及对应出现次数),此外,还要考虑输入的数字中有0的情况,所以要开辟一个长度1000的结构体数组,用来存放对应数字出现的次数; 有个小技巧就是用数组的下标表示输入的数字,每输入一个数字,对应下标的元素加1,这样数组的每个元素与其下标就共同完成了对输入数字的计数;...

qq_40064490的博客 430

C++实现CCF201503-2 数字排序

问题描述   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。 输出格式   输出多行,每行包含两个整数,分别表示一个给定的整数和它出现的次数。按出现次数递减的顺序输出。如果两个整数出现的次数一样多,则先输出值较小的,然后输出值...

MK422的博客 409

CCF-201503-2-数字排序(C++)

试题编号: 201503-2 试题名称: 数字排序 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   给定n个整数,请统计出每个整数出现的次数,按出现次数从多到少的顺序输出。 输入格式   输入的第一行包含一个整数n,表示给定数字的个数。   第二行包含n个整数,相邻的整数之间用一个空格分隔,表示所给定的整数。 输出格式   输出多行,每行包含两个整数,分别表示一个给定...

酸菜鱼翻身历程 541

istream_iterator, ostream_iterator,copy以及文件序列化

<br />#include <iostream><br />#include <fstream><br />#include <algorithm><br />#include <cassert><br />#include <numeric><br />#include <string><br />using namespace std;<br />int main()<br />{<br /> vector<int> vec_int;<br /> for (int i=0; i<10; i++)<br

973

Copy 方法 和 ostream 迭代器

目录 头文件 #include <algorithm> template<class inputIterator, class outputIterator> outputIterator copy(InputIterator beg,InputIterator end, outputIterator beg) 从原型上看主要作用是将一个容...

weixin_33815613的博客 214
上一篇: CCF 201509-2 日期计算 C++ pay attentin
下一篇: CCF 201412-2 Z字形扫描 pay attention
cloudless_sky
博客等级 码龄8年 106粉丝 128原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值