身份证排序(蓝桥)

题目链接

https://www.dotcpp.com/oj/problem1568.html

解题思路

第一点:
我一直用string类型保存,利用string的函数去操作,总是超时。
看了学长的题解才发现其实用取模和整除操作就行。
第二点:
比较cin,cout和scanf,printf的耗时。
图片说明
图片说明
提交状态后面的两个数值分别表示内存和耗时。
第一个用cin,cout提交的,第二个是用scanf,printf提交的,时间差的不是一点半点,我用了加快cin,cout的语句依旧TLE64。
总而言之,以后改过来使用cin,cout来偷懒的毛病,尽量使用scanf,printf。

AC代码

#include<bits/stdc++.h>
#define ll long long
#define sc(x) scanf("%lld",&x)
#define pr(x) printf("%lld\n",x)
using namespace std;
const int N=1e5+100;
ll a[N],n;
bool cmp(ll b,ll c){
    ll bb=b/10000%100000000;
    ll cc=c/10000%100000000;
    if(bb==cc) return b>c;
    return bb>cc;    
}
int main(){
    sc(n);
    for(int i=1;i<=n;i++) sc(a[i]);
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++) pr(a[i]);
} 
全部评论

相关推荐

今天 09:59
复旦大学 Java
点赞 评论 收藏
分享
10-30 19:23
已编辑
山东大学(威海) C++
牛至超人:我了个雷 1.实习经历写太长了吧,精简一点,你写那么老多,面试官看着都烦 2.项目经历你放俩竞赛干啥单独拿出来写上几等奖就行了呗 3.一大雷点就是项目经历里的那个课程设计,大家都知道课程设计巨水,不要写课程设计,换一个名字,就叫学生管理系统,面试官问就说是自己做的项目,不要提课程设计的事 4.那个交流经历,简化一下塞到最上面的教育经历里就行了 5.简历尽量一页纸
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务