题目链接
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]); }