题目链接
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]);
} 
京公网安备 11010502036488号