PAT 甲级 1002 PAT Ranking 个人错误总结

    技术2025-11-15  28

    我人傻了,这题我竟然花了一个半小时。。 一开始完全想复杂了,我总是不由自主的想让空间复杂度小,所以一开始直接建立了一个结构体,用cmp排序。。。 遇到的问题: 1.做了一个小时结构体,气炸了,结果忘记打scanf的输出了,导致输出来一堆乱码,还很小,还以为是因为浮点数比大小导致的,搞了半天。 2.第二个循环我一开始写的是1000,结果有一个点没过,太笨了( 其实是没想到),以后一定看好0-1000是1001个数。。 3.结构体处理的时候,真的好麻烦,就是一个顺序表,若为空还要删除,想了想可能用map更好一点,map有自己的函数删除,还可以自动排序。。 ac代码:

    #include<stdio.h> #include<iostream> #include<algorithm> using namespace std; int main(){ double a[1001]={0}; int k,b,step=0; double c; scanf("%d",&k); for(int i=0;i<k;i++){ scanf("%d",&b); scanf("%lf",&c); a[b]+=c; } scanf("%d",&k); for(int i=0;i<k;i++){ scanf("%d",&b); scanf("%lf",&c); a[b]+=c; } for(int i=0;i<1001;i++){ if(a[i]!=0) step++; } printf("%d",step); for(int i=1000;i>=0;i--) if(a[i]!=0) printf(" %d %.1lf",i,a[i]); printf("\n"); return 0; }
    Processed: 0.013, SQL: 9