编号(太晚了,先发一题,可能以后题都单发了,方便分类整理)

简介: 编号(太晚了,先发一题,可能以后题都单发了,方便分类整理)

编号 - NYOJ


/*结构体数组,属性包括顺序,城市,年份,后六位,输入时存下顺序,

然后结构体多关键字排序,

遍历结构体数组,前后年份一致则后六位= cnt++;

不一致则cnt= 1,后六位 = cnt ++;

最后按照输入顺序排序,再遍历输出


以上为蒟蒻(我的)做法

***********************


进阶流程如下

结构体数组a[N]按照年份从小到大排序

遍历结构体数组,哈希思想:后六位 = hash[a[N].year]++;

简单,细节少

最后同样的输出手法


**********************

套路及使用场景

1、输入顺序储存

const int N = 1e6;
struct city{
    int <数据>,No;
}a[N];
bool cmp(city x,city b){
    return x.No < y.No;
}
for(int i = 1;i <= n;i++){
    cin >> a[i].<数据>
    a[i].No = i;
}
…………
sort(a+1,a + 1 + n,cmp);
for(int i = 1;i <= n;i++){
    cout << a[i].<……>;
}
return 0;

场景是输入的数据明显需要排序求解,但输出要按原顺序

2、哈希表

for(int i = 1;i <= n;i++){
    a[i].<1> =  hash[a[i].<2>]++;
}

关于这个哈希的套路,暂时归结不出什么前提条件,留待与其他哈希题比较

*/

完整ac代码

#include <algorithm>
#include <iostream>
using namespace std;
const int N = 1e6;
struct M{
    int Year,City,No,yz;
}a[N];
bool cmp01(M x,M y){
    return x.Year < y.Year;
}
bool cmp02(M x,M y){
  return x.No < y.No;
}
int cnt[N];
int main(){
    int n,m;
    scanf("%d%d",&n,&m);
    for(int i = 1;i <= m;i++){
        scanf("%d%d",&a[i].City,&a[i].Year);
        a[i].No = i;
    }
    sort(a+1,a+m+1,cmp01);
    for(int i = 1;i <= m;i++){
        a[i].yz = ++cnt[a[i].City];
    }
    sort(a+1,a+m+1,cmp02);
    for(int i = 1;i <= m;i++){
        printf("%06d%06d\n",a[i].City,a[i].yz);
    }
    return 0;
}
目录
相关文章
|
6月前
|
移动开发 前端开发 API
期末测试——H5方式练习题
期末测试——H5方式练习题
49 0
【期末不挂科-单片机考前速过系列P6】(第六章:10题速过定时计数器的结构和工作方式例题)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P6】(第六章:10题速过定时计数器的结构和工作方式例题)经典例题盘点(带图解析)
|
6月前
【错题集-编程题】字母收集(动态规划 - 路径问题)
【错题集-编程题】字母收集(动态规划 - 路径问题)
|
前端开发 JavaScript Java
内容管理-易错重难点
项目的模块架构理解 在我们做项目之前首先要对项目的模块结构有一个基本的了解,放一张我做的结构图: 注意点: 我们将依赖版本管理和依赖管理分为两个工程,而不是放在一个工程中,这样的话可以子模块可以选择性的继承,而不会太重 parent工程:对整个项目的依赖包版本进行管理 base工程:提供基础类库、工具类库等(继承parent工程,从而也纳入版本管理) content工程是一个聚合工程,不需要依赖,所以我们让它继承于parent工程拿到依赖版本即可 在content微服务工程中,我们可以发现api工程和service工程都依赖于model工程,那么我们就不需要让api、service、m
38 0
|
JSON 前端开发 数据格式
你想要的错题分析
你想要的错题分析
|
存储 算法 Java
代码随想录训练营day25| 216.组合总和III 17.电话号码的字母组合
代码随想录训练营day25| 216.组合总和III 17.电话号码的字母组合
|
存储 机器学习/深度学习
二叉树详解一万字(基础版)看着一篇就够了(上))
树的结构是一种非线性的数据结构,它是由n(n>=0)个节点组成的一个有层次的关系集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说他是根朝上,而叶朝下。
140 0
|
数据安全/隐私保护 C语言
【C语言】制作“学生管理成绩系统”,内容包括【系统显示】【录入信息】【删除信息】【等级评定】【成绩排序】【成绩修改】【查找学生】涉及循环、结构体和数组等
学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程。这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路。学习之乐,独乐乐,不如众乐乐,把知识讲给更多的人听,何乐而不为呢? 导言 学生菜单系统是基于前阶段的C语言学习,从实际出发,巩固C语言基础的练习,通过多种函数的不同运用,检验知识点的牢固可靠性。 系统设计概述 整个学生系统将会被分成几个内容,将大任务分为多个小任务,并将其合理连接起来,独立而又有联系,对逻辑能力有一定要求(没错,我是木头) 设计多个模块 开发团队信息(即首
【C语言】制作“学生管理成绩系统”,内容包括【系统显示】【录入信息】【删除信息】【等级评定】【成绩排序】【成绩修改】【查找学生】涉及循环、结构体和数组等