洛谷 T314739 成绩统计 样例过了,全wa

洛谷 T314739 成绩统计
样例过了,全wa

#include <bits/stdc++.h>
using namespace std;
struct student{
    long long num;
    int sco;
};
bool cmp(student a,student b){
    if(a.sco==b.sco){
        return a.num<b.num;
    }
    return a.sco>b.sco;
}
int main(){
    int n;
    student a[109];
    cin >>n;
    for(int i=1;i<=n;i++){
        cin >>a[i].num;
        cin >>a[i].sco;
    }
    sort(a,a+n+1,cmp);
    for(int i=1;i<=n;i++){
        if(a[i].sco>60){
            printf("%011lld",a[i].num);
            cout /*<<a[i].num<<*/" "<<a[i].sco<<" "<<endl;
        }
    }
    return 0;
}

  • 以下回答由chatgpt基于相关博客总结生成:

    根据提供的参考资料,对于优化洛谷题目 T314739 的成绩统计的问题,我可以给出以下解决方案:

    1. 解法2:用字符型变量存储三位数(段落0)

    根据段落0提供的代码,我们可以看到该解法是通过分别存储三个字符abc,然后根据字符的值进行判断输出的顺序。

    这个解法本身没有明显的性能问题,但可以考虑减少不必要的代码和判断,以提高代码的可读性和效率。

    优化方案:

    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        string s;
        cin >> s;
        reverse(s.begin(), s.end());
        cout << s << endl;
        return 0;
    }
    

    这个优化方案将输入的三位数作为字符串处理,并将字符串逆序输出。这样可以直接输出的逆序结果,避免了对字符进行判断和拼接的操作,简化了代码逻辑。

    1. 解法3:记忆化递归(段落3)

    根据段落3提供的代码,我们可以看到该解法是采用递归方式计算将i个球装j个盒子的方案数,并使用记忆化的方式避免重复计算。

    这个解法通常用于解决组合计数问题,但与题目中的成绩统计问题关系不大,使用该解法并不合适。

    因此,我们可以排除解法3,不采用记忆化递归的方式来优化成绩统计问题。

    综上所述,对于优化洛谷题目 T314739 的成绩统计问题,我建议采用解法2中的优化方案,将输入的三位数作为字符串处理,并将字符串逆序输出,以提高代码的可读性和效率。