• UVa11292


    来源:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2267

    第一题在UVa上AC的题。

    题本身简单,但是UVa的数据很凶残。

    提交了20来次,终于发现了点东西。

    首先,UVa肯定是用了linux的系统评测,因为数组初始化了和没初始化是完全不同的,在windows下这问题不大。

    再有,边界条件不是一般的严格,数组最好从0开始存储,不然莫名其妙的就错了。

    这是我AC的代码:

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int a[20010],b[20010];
    
    int main()
    {
        int n,m;
        while (scanf("%d%d",&n,&m)==2 && n && m)
        {
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            for (int i=1;i<=n;i++) scanf("%d",&a[i]);   //我的数组是从1开始存储的,出现了很多莫名其妙的问题
            for (int i=1;i<=m;i++) scanf("%d",&b[i]);
            sort(a+1,a+n+1);
            sort(b+1,b+m+1);
            int k=1,sum=0;     //注意k是从1开始的,从0开始就死定了,基本上没法改
            for (int i=1;i<=m;i++)
            {
                if (b[i]>=a[k]){
                    sum+=b[i];
                    if (++k==n+1) break;    //这里的判断也是一样
                }
            }
            if (k<=n) printf("Loowater is doomed!\n");
            else printf("%d\n",sum);
        }
        return 0;
    }

    这个是数组从0开始存储的:

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    int a[20010],b[20010];
    
    int main()
    {
        int n,m;
        while (scanf("%d%d",&n,&m)==2 && n && m)
        {
            memset(a,0,sizeof(a));
            memset(b,0,sizeof(b));
            for (int i=0;i<n;i++) scanf("%d",&a[i]);   //从0开始存储
            for (int i=0;i<m;i++) scanf("%d",&b[i]);
            sort(a,a+n);
            sort(b,b+m);
            int k=0,sum=0;  //注意k的值
            for (int i=0;i<m;i++)
            {
                if (b[i]>=a[k]){
                    sum+=b[i];
                    if (++k==n) break;    //注意条件
                }
            }
            if (k<n) printf("Loowater is doomed!\n");
            else printf("%d\n",sum);
        }
        return 0;
    }
  • 相关阅读:
    roscore提示“ModuleNotFoundError: No module named 'defusedxml'”的解决。
    Linux下/home/用户名/.local文件
    vscode 使用技巧一-列编辑。
    Ubuntu下安装visual studio code
    第一阶段(七)
    第一阶段(六)
    Python爬取imdb电影数据并存储到mysql数据库
    第一阶段(五)
    第一阶段(四)
    第一阶段(三)
  • 原文地址:https://www.cnblogs.com/ay27/p/2780091.html
Copyright © 2020-2023  润新知