首页 > 编程语言 >2023GPLT团体程序设计天梯赛 记录

2023GPLT团体程序设计天梯赛 记录

时间:2023-04-22 23:56:37浏览次数:33  
标签:pre int 2023GPLT cin ++ 天梯 L1 程序设计 top

排名

个人全国排名:  4391(共 1w7)
个人全校排名:  第3
个人 21 级排名:  第2名 (第一名是 ztm 哥, 顶级混分手, 狂砍 181 分)
队伍排名: 河南省  第 23,银牌, 话说为啥去年我会写第九(

分数

得分: 161
题目情况:

L1-01 L1-02 L1-03 L1-04 L1-05 L1-06 L1-07 L1-08 L2-01 L2-02 L2-03 L3-01 L3-02 L3-03
AC AC AC AC AC AC AC AC AC WA3,5 -- WA1,4,6 -- --

共 AC9道满分,L:2-02,L2-03 好像都是 20 分左右, 其实 L2-03 输出 No Solution 也混了 2 分(

经验

都不难, 考前如果你把 PTA 上 L2 的题全刷了至少保底也是 140 分, 就像今年的 L2-01, 永恒不变的考栈, 甚至还没去年 L2-01 插松针一半难。

比拼的还是写代码的熟练度以及快速审题的能力, 就像 L1-06 那个剪贴板题目, 哥们一直以为是粘贴的前缀和后缀之间如果有空位置就替换掉, 且在所有可选位置中找最靠左的, 然而他俩前后缀是连起来的, 本身就是想让你找到前缀后判断后缀是否存在来判断要不要插到最后边。还好样例最后一句 1 1 e r 我没过调了半个多小时才想明白, 不然那真属于是进 ICU 猜谜。

又比如 L1-07, 找差距最小的分房间情况, 题目有说1个的时候不成立, 但哥们还是WA了好几发因为没注意这个条件, 甚至都给题目简化了一下写注释里也给这事忘了。

天梯赛很少考算法题, 大部分都是基础题目, 还好这回没考时间日期之类的, 不然再寄一次(去年还说好好写点)。准备的时候多刷点 PTA L1/L2 题目就行了, 像 L3 之类的, 除非你开考一小时内给L2L1全写了, 有充裕的时间来整这些难题, 才推荐尝试。总的来说不比去年差, 毕竟拿了学校第一个银牌, 但也没好多少, 原本预期拿个个人三等奖来着, 还是再多练练题再来吧。至于L3, 还是以后再来探索吧(

好好读题, 别急, 一急就得

附部分AC代码

包含 L1~L2-01 的, 那些我没过但混到了20分的就不贴出来了, 以免给各位引沟里(

L1-02

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int a,b;
    cin >> a >> b;
    printf("%d\n", a+b - 16);
    printf("%d\n", a+b - 3);
    printf("%d\n", a+b - 1);
    printf("%d\n", a+b);
    
    return 0;
}

L1-03

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,m,k;
    string x;
    cin >> n >> x >> m >> k;
    if(k == n) cout << "mei you mai " << x << " de\n";
    else if(k == m) cout << "kan dao le mai "<< x << " de\n";
    else cout << "wang le zhao mai " << x << " de\n";
    
    return 0;
}

L1-04

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    while(n--)
    {
        int a,b, c;
        cin >> a >> b >> c;
        if(c == a*b) cout << "Lv Yan\n";
        else if( c== a + b) cout << "Tu Dou\n";
        else cout << "zhe du shi sha ya!\n";
    }
    
    
    return 0;
}

L1-05

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,m;
    int a[110] = {};
    cin >> n;
    for(int i = 1; i <= n; i++)
           cin >> a[i];
    cin >> m;
    while(m--)
    {
        bool flag = true;
        int res = 0;
        for(int i = 1; i <= n; i++)
        {
            int t;
            cin >> t;
            res += t;
            if(t && t != a[i]) flag = false;
        }
        if(!flag || !res) cout << "Ai Ya\n";
        else cout << "Da Jiang!!!\n";
    }
    
    return 0;
}

L1-06

#include <bits/stdc++.h>
using namespace std;
string cy;

void cut(string &s, int l, int r)
{
    string t = s.substr(0, l - 1);
    cy = s.substr(l - 1, r - l + 1);
    t += s.substr(r);
    s = t;
}

void past(string &s, string pre, string end)
{
    int l = -1, r = -1;
    for (int i = 0; i < s.size(); i++)
        if (s[i] == pre[0])
        {
            int j = 0, u = i;
            while (j < pre.size() && u < s.size() && s[u] == pre[j])
                u++, j++;
            if (j == pre.size() && end == s.substr(i + pre.size(), end.size()))
            {
                l = i;
                break;
            }
        }
    if (l != -1)
    {
        string t = s.substr(0, l + pre.size());
        t += cy;
        t += s.substr(l + pre.size());
        s = t;
        return;
    }
    else
    {
        s += cy;
        return;
    }
}

int main()
{
    string s;
    cin >> s;
    int n;
    cin >> n;
    while (n--)
    {
        int l, r;
        string pre, end;
        cin >> l >> r >> pre >> end;
        cut(s, l, r);
        past(s, pre, end);
        cy = "";
    }
    cout << s << endl;

    return 0;
}

L1-07

#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;

int main()
{
    int n,m, k;
    cin >> n >> m >> k;
    int res1 = -1, res2 = -1, dist = INF;
    for(int i = 1; i < k; i++)
    {
        int j = k - i;
        if(n % i == 0 && m % j == 0)
        {
            int r1 = n/i, r2 = m/j;
            if(r1 == 1 || r2 == 1) continue;
            if(abs(r2-r1) < dist)
            {
                res1 = i, res2 = j;
                dist = abs(r2 - r1);
            }
        }
    }
    if(res1 == -1) cout << "No Solution\n";
    else cout << res1 << " " << res2 << endl;
    
    return 0;
}

L1-08

#include <bits/stdc++.h>
using namespace std;
const int INF = 0x3f3f3f3f;

int get(int x)
{
    int res = 0;
    while (x)
    {
        res += x % 10;
        x /= 10;
    }
    return res;
}

int main()
{
    int n;
    cin >> n;
    while (n--)
    {
        int a, b;
        cin >> a >> b;
        int Sa = get(a), Sb = get(b);
        bool f1 = a % Sb == 0, f2 = b % Sa == 0;
        if (f1 && !f2)
            cout << "A\n";
        else if (!f1 && f2)
            cout << "B\n";
        else if (a >= b)
            cout << "A\n";
        else
            cout << "B\n";
    }

    return 0;
}

L2-01

#include <bits/stdc++.h>
using namespace std;
const int N = 1e3 + 10;
int c[N], top_c;
int a[N], top_a;
int n;

int main()
{
    cin >> n;
    int max_length = 0, cnt = 0;
    while (n--)
    {
        int t;
        cin >> t;
        if (!top_a || t < a[top_a])
            a[++top_a] = t;
        else if (!top_c || t > c[top_c])
            c[++top_c] = t;
        else
        {
            max_length = max(max_length, top_a);
            top_a = 0;
            cnt++;
            while (top_c && c[top_c] > t)
                a[++top_a] = c[top_c--];
            a[++top_a] = t;
        }
    }
    if (top_a)
    {
        cnt++;
        max_length = max(max_length, top_a);
        top_a = 0;
    }
    if (top_c)
    {
        cnt++;
        max_length = max(max_length, top_c);
        top_c = 0;
    }

    cout << cnt << " " << max_length << endl;
    return 0;
}

标签:pre,int,2023GPLT,cin,++,天梯,L1,程序设计,top
From: https://www.cnblogs.com/edwinaze/p/17344491.html

相关文章

  • 天梯赛--列出连通集代码及注意事项
    问题描述:给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边......
  • JSP程序设计_全程_老师笔记
    ​2.21笔记 一、网页的组成元素      网页一般是由内容、样式和布局、动效三部分组成的。            内容(HTML)主要指的是页面的文字、按钮button、图片img、视频video、音频audio等等            样式和布局(CSS)指的是内容的大小、颜......
  • 团体天梯练习 L3-008 喊山
    L3-008喊山喊山,是人双手围在嘴边成喇叭状,对着远方高山发出“喂—喂喂—喂喂喂……”的呼唤。呼唤声通过空气的传递,回荡于深谷之间,传送到人们耳中,发出约定俗成的“讯号”,达到声讯传递交流的目的。原来它是彝族先民用来求援呼救的“讯号”,慢慢地人们在生活实践中发现了它的实用价......
  • 青岛市程序设计竞赛冲刺①
    2021年青岛市小学组第三题原题: 解题代码:#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<algorithm>usingnamespacestd;constintN=5e2+5,dx[4]={0,0,-1,1},dy[4]={1,-1,0,0};intn,m,vis[N][N],ans=0;charc......
  • 2023CUGB天梯校赛
    M1.文件路径模拟即可题目描述给你一个字符串path,表示指向某一文件或目录的Unix风格绝对路径(以'/'开头),请你将其转化为更加简洁的规范路径。在Unix风格的文件系统中,一个点('.')表示当前目录本身;此外,两个点('..')表示将目录切换到上一级(指向父目录);两者都可以是复杂相对路......
  • pta程序设计辅助平台练习题
    一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:012345678910M:10X98765432 ......
  • 团体程序设计天梯赛 L1-064 估值一亿的AI核心代码 题解
    思路L1-064估值一亿的AI核心代码题意有一点不太清晰的,就是原文中的'I',无论是否是单独的,都不能变为小写。如果是单独的'I'再被转化为'you'。这种模拟题就需要每个的分分清清楚楚的,不要都揉到一块儿,容易写错。具体还有些需要注意的在代码里注释着了。代码#include<iostream>......
  • 天梯赛选拔_2023_第四场
    7-1聪明一点的拖长音题目描述输入一行字符,去掉空格,在每个单词最后一个字母处加一个-。输入格式:输入一行字符,中间有若干空格,字符数不超过100个。输出格式:输出这行的所有英文字母,在每个单词末尾加一个-。注:单词是指由大写或小写英文字母组成的一个词。输入样例:Iam......
  • 华中农业大学2023年十二届程序设计竞赛(补题)
    题目地址B.写信题意:有n个信封和n封信,问全部装错有多少种可能Solution全错排问题,对于i=k的情况,我们可以从i=k-1和i=k-2转移过来一种是k-1个全错排,然后从前面k-1个选出一个信封与第k个交换另一种是任选一个j,有1<=j<=k-1放在k,这样除了k和j以外还有k-2个数进行全错位排列,这样我......
  • L1 - 7 天梯赛的善良
    代码#include<bits/stdc++.h>usingnamespacestd;map<int,int>A;intn,minn=INT_MAX,maxn=INT_MIN;//头文件中自定义的宏intmain(){cin>>n;for(inti=0;i<n;i++){intt;cin>>t;A[t]++;//数......