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.应该多做题,多练习

原文地址:https://www.cnblogs.com/DefineWaAc/p/13736300.html