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 题解相关推荐

  1. 洛谷 P7259 【[COCI2009-2010#3] SORT】

    题目传送门 思考 看到题目第一感觉是桶排,然而看到 1≤C≤1091≤C≤10^91≤C≤109 嗯······就很NICE 1≤N≤1031≤N≤10^31≤N≤103 然后就想到了map(不知道的 ...

  2. Codeforces Round #648 (Div. 2)题解 A-D

    文章目录 A - Matrix Game B - Trouble Sort C - Rotation Matching D - Solve The Maze A - Matrix Game 题解:其实 ...

  3. JavaScript算法(实例三)数组排序--冒泡排序 / sort() / reverse() / 比较函数

    冒泡排序 冒泡排序是让数组中的两个相邻数字进行比较,数组中较大的值向下沉,值小的上浮,就类似于水中的气泡,较大的下沉,较小的上升,慢慢冒出来.简单的说就是数值大的会慢慢往前排,数据值小的会慢慢向后排, ...

  4. 火箭发射问题_人工智能有火箭问题

    火箭发射问题 Some philosophers and artificial intelligence (AI) researchers like to use the metaphor of th ...

  5. 判断表格中的一列是否有重复项

    //判部门是否为空var arr = [];$("[name^=departmentId_]").each(function(){if(!$(this).val()){isOk = ...

  6. 【AtCoder】ARC088

    C - Multiple Gift 题解 首项是X,每次乘个2,暴力统计 代码 #include <bits/stdc++.h> #define fi first #define se s ...

  7. python3 urlencode_Python2和Python3中urllib库中urlencode的使用注意事项

    前言 在Python中,我们通常使用urllib中的urlencode方法将字典编码,用于提交数据给url等操作,但是在Python2和Python3中urllib模块中所提供的urlencode的包 ...

  8. JavaScript 笔记之数组

    目录 一.创建数组 1.使用[ ]符号创建 2.使用new Array()创建 3.避免 new Array() 二.访问/重写数组元素 三.数组类型 1.类型判断 2.何时使用数组,何时使用对象? ...

  9. js中数组大全的方法总结

    1.join() 将数组转换为字符串,默认是逗号.不改变原数组,返回转换后的字符串 . var arr = ["Banana", "Orange"," ...

最新文章

  1. 漂浮机器人新进展:Cimon的头部将为国际空间站带来人工智能
  2. 计算机仿真实验用的教学软件是,AR增强现实教学软件,学习效果倍增
  3. bash编程-循环控制的结构
  4. hoj 13788 Dwarves
  5. read函数头文件 window_of_property_read_string 剖析
  6. 揭示地理数据分布规律的方法
  7. 李迟2022年1月知识总结
  8. Java Socket分发服务负载均衡
  9. 李洪强iOS开发之OC[011] - 有参方法的声明实现以及调用练习
  10. ADB工具包15秒快速安装器,已集合ADB、FASTBOOT工具箱和最新的驱动程序
  11. 自回归滑动平均(ARMA)模型
  12. 红米2刷android4.4,【图片】红米2三网通刷CyanogenMod CM11 Android 4.4.4_红米2吧_百度贴吧...
  13. App接入阿里云号码认证服务 一键登录 Java后端服务部分
  14. Ubuntu18.04将QT应用设计为开机自启
  15. 计算机教师招聘笔试总结
  16. PlSQL和OracleClient
  17. python asyncio future_Python 期物之 asyncio.Future
  18. 前端开发----微信小程序入门级教程(前篇)
  19. 32*4段 超低功耗LCD液晶显示驱动IC-VKL128 LQFP44,适用水表/传感器/热能表/压力表/测厚仪等,工作电流约7.5微安
  20. 传拼多多将上线“多多国际” 回应:该业务早就存在

热门文章

  1. Android仿微信图片编辑——涂鸦框架Doodle(多功能画板)
  2. 解决:Svg图标,vue中使用 .svg 文件
  3. vue前端页面转PDF
  4. luoguP4343自动刷题机
  5. (待拔草)关于电烙铁焊接时排放有毒气体的现象、解决方法
  6. 视频教程-机器学习算法之线性模型视频教学-机器学习
  7. api 支付宝接口 支付接口 退款接口
  8. VUE是什么?VUE简介
  9. python作业第五例:输入三个整数x,y,z,请把这三个数由小到大输出。
  10. Qt - MVC模型/视图编程