• CCPC网络选拔赛2020 总结


      这次比赛只做出了三个题,而且Wa了十多次,罚时太多,排名很靠后。主要原因是比赛知识储备不够,导致大多数题没法做;题做的少,导致一些题没思路;比赛经验不足,总结不够。

        1003题,这题错了太多次,主要原因是没有仔细读题,理解错题意,并且用cin输入超时多次。题意是每次取完快递,必须回到放钥匙的地方(最后一次除外),这题的思路是判断这个位置是否大于那个钥匙的位置,若是大于那个位置的话,那么最终的步数就必然就要加上2倍的它的位置和钥匙的位置差;若不是,则考虑位置最靠近门的那个,即位置最小的那个,因为它和钥匙离得最远,所要走的步数最多,最后拿完钥匙顺便开它就好,所走步数最少,其他的则拿完快递都得回去。所以每次都记录快递和门的位置差 * 2 , 最后 加上到门的距离 , 再减去位置最小和钥匙的距离差,再加上最小位置 - 1...

    下附代码。

    #include <iostream>
    #include <cstdio>
    #include <algorithm> 
    using namespace std;
    typedef long long ll;
    ll res, sum;
    int t, n, x, k, m, min_num; 
    int main()
    {
        scanf("%d", &t);
        while(t--){
            sum = 0;
            min_num = 1e9 + 10;
            scanf("%d %d %d", &n, &m, &k);
            for(int i = 1;i <= m; ++ i){
                scanf("%d",&x);
                sum += 2 * abs(x - k);
                min_num = min(min_num, x); 
            }
            res = sum - abs(min_num - k) + min_num - 2 + k;
            printf("%d
    ", res);
        }
    }

    1007题,大意就是找出字符数组中出现的最多次的字符个数。下附代码:

    #include<iostream>
    #include <cstdio>
    #include <cstring> 
    #include <algorithm>
    
    using namespace std;
    const int N  = 2e5 + 10;
    int t,n, m, k;
    int a[200];
    int res = 0, cnt;
    char str[N];
    int main()
    {
        scanf("%d", &t);
        while(t--){    
            for(int i = 'a';i <= 'z'; ++ i){
                a[i] = 0;
            }
            res = 0;
            cin >> str;
            
            int len  = strlen(str);
            for(int i = 0;i < len; ++ i){
                a[str[i]] ++;
                res = max(a[str[i]], res);
            }
            printf("Case #%d: %d
    ", ++ cnt, res);    
        }
    
    }

    1010题,给出一个数组,若是有两个连续相同的数字,则输出"NO", 否则输出"YES", 下附代码:

    #include<bits/stdc++.h>
    
    using namespace std;
    int t,n;
    int a[100];
    int main()
    {
        cin >> t;
        while(t--){
            cin >>n;
            cin >> a[0];
            int flag = 0;
            for(int i = 1;i <= n-1; ++i){
                    cin >> a[i];
                if(a[i] == a[i-1] && !flag){
                    puts("NO");
                    flag = 1;
                }
            }
            if(flag) continue ;
            puts("YES");
        }
    }

     反思:

      1.应该分工明确,积极发挥团队作用。正式比赛是三人用一台电脑,所以敲代码应是一个人敲,提交时也时一台电脑提交,这次比较特殊,三台机子都可以提交,而且我们也没有限制提交(实际上主要是我那个错的题提交的最多。。),导致罚时过多。总之,弄得有些像个人赛,没有很好的发挥团队的作用。

         2.应该多学一些新知识,积极学习一些算法、题型,可能要不同的人负责不同的题型。具体学习应该有一个规划。

      3.应该多做题,多练习

  • 相关阅读:
    P1522 牛的旅行
    P1908 逆序对
    P1107 雷涛的小猫
    欧拉函数
    P2679 子串
    P1063 能量项链
    P1052 过河
    P1020 导弹拦截
    P1330 阳光封锁大学
    P1198 最大数
  • 原文地址:https://www.cnblogs.com/DefineWaAc/p/13736300.html
Copyright © 2020-2023  润新知