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

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

编号 - 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;
}
目录
相关文章
摄影测量学:课后练习总结2
摄影测量学:课后练习总结2
187 0
摄影测量学:课后练习总结2
|
11月前
LeetCode题解-让所有学生保持开心的分组方法数
LeetCode题解-让所有学生保持开心的分组方法数
【期末不挂科-单片机考前速过系列P6】(第六章:10题速过定时计数器的结构和工作方式例题)经典例题盘点(带图解析)
【期末不挂科-单片机考前速过系列P6】(第六章:10题速过定时计数器的结构和工作方式例题)经典例题盘点(带图解析)
|
3月前
|
调度
【错题集-编程题】主持人调度(一)(排序)
【错题集-编程题】主持人调度(一)(排序)
|
3月前
|
关系型数据库 MySQL
Mysql基础第十六天,分组数据
Mysql基础第十六天,分组数据
25 0
|
9月前
|
算法
代码随想录算法训练营第二十五天 | LeetCode 216. 组合总和 III、17. 电话号码的字母组合
代码随想录算法训练营第二十五天 | LeetCode 216. 组合总和 III、17. 电话号码的字母组合
45 0
|
11月前
|
JSON 前端开发 数据格式
你想要的错题分析
你想要的错题分析
|
存储 Java 索引
1760字,让你拿捏 [‘列表‘]
1760字,让你拿捏 [‘列表‘]
|
存储 算法 Java
代码随想录训练营day25| 216.组合总和III 17.电话号码的字母组合
代码随想录训练营day25| 216.组合总和III 17.电话号码的字母组合
|
存储 机器学习/深度学习
二叉树详解一万字(基础版)看着一篇就够了(上))
树的结构是一种非线性的数据结构,它是由n(n>=0)个节点组成的一个有层次的关系集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说他是根朝上,而叶朝下。
99 0