CCCC-GPLT (2021) 复盘(L1阶段)

目录

  • L1-1 人与神(5分)
  • L1-2 两小时学完C语言(5分)
  • L1-3 强迫症(10分)
  • L1-4 降价提醒机器人(10分)
  • L1-5 大笨钟的心情(15分)
  • L1-6 吉老师的回归(15分)
  • L1-7 天梯赛的善良(20分)
  • L1-8 乘法口诀数列(20分)
  • 写在最后

L1-1 人与神(5分)

CCCC-GPLT (2021) 复盘(L1阶段)_第1张图片

签到题,没什么好说的……

语言:Python (python3)

print('To iterate is human, to recurse divine.')

L1-2 两小时学完C语言(5分)

CCCC-GPLT (2021) 复盘(L1阶段)_第2张图片

签到题, a n s = N − M × K ans = N - M \times K ans=NM×K

语言:C++ (g++)

#include 
using namespace std;

int main() {
     
    int n, k, m;
    cin >> n >> k >> m;
    cout << n - k * m << endl;
    return 0;
}

L1-3 强迫症(10分)

CCCC-GPLT (2021) 复盘(L1阶段)_第3张图片

对字符串进行处理的话,用Python会更简单一些。

语言:Python (python3)

date = input()
if len(date) == 4:
    date = '20' + date if int(date[:2]) < 22 else '19' + date
print(date[:4] + '-' + date[4:])

L1-4 降价提醒机器人(10分)

CCCC-GPLT (2021) 复盘(L1阶段)_第4张图片

多组输入,每次输入 P i P_i Pi的时候和 M M M比较一下,如果比 M M M小按格式输出即可。

语言:C++ (g++)

#include 
using namespace std;

int main() {
     
    int n, m;
    cin >> n >> m;
    while (n--) {
     
        double p;
        cin >> p;
        if (p < m) {
     
            printf("On Sale! %.1lf\n", p);
        }
    }
    return 0;
}

L1-5 大笨钟的心情(15分)

CCCC-GPLT (2021) 复盘(L1阶段)_第5张图片

简单的一维数组。

语言:C++ (g++)

#include 
using namespace std;

int nums[24];

int main() {
     
    for (int i = 0; i < 24; i++) {
     
        cin >> nums[i];
    }
    while (true) {
     
        int n;
        cin >> n;
        if (n < 0 || n > 23) {
     
            break;
        }
        cout << nums[n] << (nums[n] > 50 ? " Yes" : " No") << endl;
    }
    return 0;
}

L1-6 吉老师的回归(15分)

CCCC-GPLT (2021) 复盘(L1阶段)_第6张图片
CCCC-GPLT (2021) 复盘(L1阶段)_第7张图片

L1阶段见到字符串无脑用Python就对了,肯定比用C++好写。
遗憾的是比赛的时候代码写得太复杂了,思路被打乱了,有一种情况没有考虑到导致有一个测试点过不了。最后其实发现问题了但是那个测试点只有1分,也没去管它。L1阶段差这1分就满分了,也算是本次比赛的一个小遗憾吧。比赛时一定要捋清思路再写代码,不能急于求成

语言:Python (python3)

n, m = map(int, input().split())
q_list = []
for i in range(n):
    q = input()
    if 'easy' not in q and 'qiandao' not in q:
        q_list.append(q)
for i in range(m):
    try:
        q_list.pop(0)
    except:
        print('Wo AK le')
        exit(0)
print('{}'.format('Wo AK le' if len(q_list) == 0 else q_list[0]))

L1-7 天梯赛的善良(20分)

CCCC-GPLT (2021) 复盘(L1阶段)_第8张图片

很常规的一道题,每次输入更新最大值和最小值以及它们的计数器即可。

语言:C++ (g++)

#include 
using namespace std;

int main() {
     
    int n;
    cin >> n;
    int min = 1000001;
    int max = 0;
    int cnt_min = 0;
    int cnt_max = 0;
    while (n--) {
     
        int num;
        cin >> num;
        if (num < min) {
     
            min = num;
            cnt_min = 1;
        } else if (num == min) {
     
            cnt_min++;
        }
        if (num > max) {
     
            max = num;
            cnt_max = 1;
        } else if (num == max) {
     
            cnt_max++;
        }
    }
    cout << min << " " << cnt_min << endl << max << " " << cnt_max << endl;
    return 0;
}

L1-8 乘法口诀数列(20分)

CCCC-GPLT (2021) 复盘(L1阶段)_第9张图片

我是个比较懒的人,两位及以上的数字要拆分什么的太麻烦了,那就不拆了。
Python,yyds。
这可能是本题最无脑的一种解法了吧……真·有手就行。

语言:Python (python3)

a1, a2, n = map(int, input().split())
ans = str(a1) + str(a2)
cur = 0
while len(ans) < n:
    ans += str(a1 * a2)
    cur += 1
    a1, a2 = int(ans[cur]), int(ans[cur + 1])
print(' '.join(list(ans[:n])))

写在最后

这次比赛是我们实验室第一次组队现场参加程序设计类竞赛,团队有七名大一的学弟学妹以及包括我在内的三名大二的成员。比赛过程一波三折,最后30分钟从排行榜的省级团队三等奖最后几名被其他队伍反超,再到不断地从有奖与无奖之间反复横跳,最后的读秒时刻学弟拿下L2的21分完成绝杀,成功保住了陕西省团队三等奖。
这次比赛我感觉我个人的发挥不是特别好,做到L2阶段有些头疼,思路也比较乱,总之143分的成绩不应该是我的正常发挥水平。好在最后结果是好的。
现场赛也见识到了很多厉害的同龄人,坐在我右边的是一名西安电子科技大学的选手,比赛最后半小时就已经通杀L1和L2阶段的所有题了。入场的时候还见到了身穿ACM-ICPC亚洲区决赛队服的大佬选手。那一刻真的感受到眼界不要仅仅局限于自己所处的小环境,正如《工作细胞Black》中的一句话所说:“总是看着自己的手,就看不到世界了吧?”外面的世界高手如云,我们要做的,唯有不断学习,不断进步。
最后以一些比赛的图片作为结尾吧,这将成为我四年本科时光中的美好又难忘的珍贵回忆。
CCCC-GPLT (2021) 复盘(L1阶段)_第10张图片
CCCC-GPLT (2021) 复盘(L1阶段)_第11张图片
CCCC-GPLT (2021) 复盘(L1阶段)_第12张图片
CCCC-GPLT (2021) 复盘(L1阶段)_第13张图片
CCCC-GPLT (2021) 复盘(L1阶段)_第14张图片

CCCC-GPLT (2021) 复盘(L1阶段)_第15张图片
CCCC-GPLT (2021) 复盘(L1阶段)_第16张图片

我们都要变得更强,加油!

你可能感兴趣的:(数据结构与算法,程序设计,python,c++,GPLT团体程序设计天梯赛)