P7259 [COCI2009-2010#3] SORT 题解
P7259 [COCI2009-2010#3] SORT 题解
- 题目
- 链接
- 字面描述
- 题目描述
- 输入格式
- 输出格式
- 样例 #1
- 样例输入 #1
- 样例输出 #1
- 样例 #2
- 样例输入 #2
- 样例输出 #2
- 样例 #3
- 样例输入 #3
- 样例输出 #3
- 提示
- 数据规模及约定
- 说明
- 思路
题目
链接
https://www.luogu.com.cn/problem/P7259
字面描述
题目描述
Mirko 是一个伟大的密码破解者。他知道世界上任何密码都可以通过频率分析来破解。
但他完全弄错了什么是频率分析。
他截获了一个敌人的信息。这个信息由 NNN 个小于等于 CCC 的数字组成。
Mirko 相信频率分析包括对这个序列进行排序,使频率较高的数字出现在频率较低的数字之前。
给定任何两个数字 xxx 和 yyy,如果 xxx 在原始序列中出现的次数大于 yyy 出现的次数,则 xxx 出现在 yyy 之前。如果出现的次数相等,则输入中谁的值出现的早,谁就应该在排序后的序列中出现靠前。
请帮助 Mirko 制作一个「频率排序器」。
输入格式
第一行,两个正整数 N,CN, CN,C,含义见题目描述。
第二行,NNN 个正整数 aia_iai,表示消息。
输出格式
第一行,NNN 个正整数,表示排序后的序列。
样例 #1
样例输入 #1
5 2
2 1 2 1 2
样例输出 #1
2 2 2 1 1
样例 #2
样例输入 #2
9 3
1 3 3 3 2 2 2 1 1
样例输出 #2
1 1 1 3 3 3 2 2 2
样例 #3
样例输入 #3
9 77
11 33 11 77 54 11 25 25 33
样例输出 #3
11 11 11 33 33 25 25 77 54
提示
数据规模及约定
对于 100%100\%100% 的数据,1≤N≤1031 \le N \le 10^31≤N≤103,1≤C≤1091 \le C \le 10^91≤C≤109,1≤ai≤C1\le a_i \le C1≤ai≤C。
说明
翻译自 COCI 2009-2010 #3 T3 SORT,满分 70,每个测试点 7 分,共 10 个测试点。
思路
一道很水的结构体排序
#include<bits/stdc++.h>
using namespace std;const int maxn=1e3+10;
int n,m,x,op;
struct node{int w,cnt,fa;// w记录数值,cnt记录数值出现的次数,fa记录数值最初出现的位置
}a[maxn];
inline bool cmp(node u,node v){if(u.cnt!=v.cnt)return u.cnt>v.cnt;return u.fa<v.fa;
}
int main(){//freopen("B.in","r",stdin);//freopen("B.out","w",stdout);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&x);bool flag=false;for(int j=1;j<=op;j++){if(a[j].w==x){a[j].cnt++;flag=true;break;}} if(!flag){a[++op].w=x;a[op].cnt=1;a[op].fa=i;}}sort(a+1,a+op+1,cmp);for(int i=1;i<=op;i++){while(a[i].cnt){printf("%d ",a[i].w);a[i].cnt--;}}printf("\n");return 0;
}
P7259 [COCI2009-2010#3] SORT 题解相关推荐
- 洛谷 P7259 【[COCI2009-2010#3] SORT】
题目传送门 思考 看到题目第一感觉是桶排,然而看到 1≤C≤1091≤C≤10^91≤C≤109 嗯······就很NICE 1≤N≤1031≤N≤10^31≤N≤103 然后就想到了map(不知道的 ...
- Codeforces Round #648 (Div. 2)题解 A-D
文章目录 A - Matrix Game B - Trouble Sort C - Rotation Matching D - Solve The Maze A - Matrix Game 题解:其实 ...
- JavaScript算法(实例三)数组排序--冒泡排序 / sort() / reverse() / 比较函数
冒泡排序 冒泡排序是让数组中的两个相邻数字进行比较,数组中较大的值向下沉,值小的上浮,就类似于水中的气泡,较大的下沉,较小的上升,慢慢冒出来.简单的说就是数值大的会慢慢往前排,数据值小的会慢慢向后排, ...
- 火箭发射问题_人工智能有火箭问题
火箭发射问题 Some philosophers and artificial intelligence (AI) researchers like to use the metaphor of th ...
- 判断表格中的一列是否有重复项
//判部门是否为空var arr = [];$("[name^=departmentId_]").each(function(){if(!$(this).val()){isOk = ...
- 【AtCoder】ARC088
C - Multiple Gift 题解 首项是X,每次乘个2,暴力统计 代码 #include <bits/stdc++.h> #define fi first #define se s ...
- python3 urlencode_Python2和Python3中urllib库中urlencode的使用注意事项
前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包 ...
- JavaScript 笔记之数组
目录 一.创建数组 1.使用[ ]符号创建 2.使用new Array()创建 3.避免 new Array() 二.访问/重写数组元素 三.数组类型 1.类型判断 2.何时使用数组,何时使用对象? ...
- js中数组大全的方法总结
1.join() 将数组转换为字符串,默认是逗号.不改变原数组,返回转换后的字符串 . var arr = ["Banana", "Orange"," ...
最新文章
- 漂浮机器人新进展:Cimon的头部将为国际空间站带来人工智能
- 计算机仿真实验用的教学软件是,AR增强现实教学软件,学习效果倍增
- bash编程-循环控制的结构
- hoj 13788 Dwarves
- read函数头文件 window_of_property_read_string 剖析
- 揭示地理数据分布规律的方法
- 李迟2022年1月知识总结
- Java Socket分发服务负载均衡
- 李洪强iOS开发之OC[011] - 有参方法的声明实现以及调用练习
- ADB工具包15秒快速安装器,已集合ADB、FASTBOOT工具箱和最新的驱动程序
- 自回归滑动平均(ARMA)模型
- 红米2刷android4.4,【图片】红米2三网通刷CyanogenMod CM11 Android 4.4.4_红米2吧_百度贴吧...
- App接入阿里云号码认证服务 一键登录 Java后端服务部分
- Ubuntu18.04将QT应用设计为开机自启
- 计算机教师招聘笔试总结
- PlSQL和OracleClient
- python asyncio future_Python 期物之 asyncio.Future
- 前端开发----微信小程序入门级教程(前篇)
- 32*4段 超低功耗LCD液晶显示驱动IC-VKL128 LQFP44,适用水表/传感器/热能表/压力表/测厚仪等,工作电流约7.5微安
- 传拼多多将上线“多多国际” 回应:该业务早就存在