2019年 团体程序设计天梯赛——题解集

简介: ⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!)⭐L1-057 PTA使我精神焕发 (5分)本题题目链接以上是湖北经济学院同学的大作。本题就请你用汉语拼音输出这句话。输入格式:本题没有输入。

⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!)

⭐L1-057 PTA使我精神焕发 (5分)

本题题目链接

以上是湖北经济学院同学的大作。本题就请你用汉语拼音输出这句话。

输入格式:

本题没有输入。

输出格式:

在一行中按照样例输出,以惊叹号结尾。

输入样例:

输出样例:

PTA shi3 wo3 jing1 shen2 huan4 fa1 !

AC代码:

#include<iostream>
using namespace std;
int main()
{
    cout<<"PTA shi3 wo3 jing1 shen2 huan4 fa1 !";
}

⭐L1-060 心理阴影面积 (5分)

本题题目链接!!!!!

df3a6cac51e74ad49d7119d36c90953f.png

这是一幅心理阴影面积图。我们都以为自己可以匀速前进(图中蓝色直线),而拖延症晚期的我们往往执行的是最后时刻的疯狂赶工(图中的红色折线)。由红、蓝线围出的面积,就是我们在做作业时的心理阴影面积。


现给出红色拐点的坐标 (x,y),要求你算出这个心理阴影面积。


输入格式:

输入在一行中给出 2 个不超过 100 的正整数 x 和 y,并且保证有 x>y。这里假设横、纵坐标的最大值(即截止日和最终完成度)都是 100。


输出格式:

在一行中输出心理阴影面积。


友情提醒:三角形的面积 = 底边长 x 高 / 2;矩形面积 = 底边长 x 高。嫑想得太复杂,这是一道 5 分考减法的题……


输入样例:

90 10

输出样例:

4000

AC代码:

#include<iostream>
using namespace std;
int main()
{
    int x,y;
    cin>>x>>y;
    int sum=100*100/2-x*y/2-(100-y)*(100-x)/2-(100-x)*y;
    cout<<sum;
}

⭐L1-061 新胖子公式 (10分)

本题题目链接!!!!!

根据钱江晚报官方微博的报导,最新的肥胖计算方法为:体重(kg) / 身高(m) 的平方。如果超过 25,你就是胖子。于是本题就请你编写程序自动判断一个人到底算不算胖子。


输入格式:

输入在一行中给出两个正数,依次为一个人的体重(以 kg 为单位)和身高(以 m 为单位),其间以空格分隔。其中体重不超过 1000 kg,身高不超过 3.0 m。


输出格式:

首先输出将该人的体重和身高代入肥胖公式的计算结果,保留小数点后 1 位。如果这个数值大于 25,就在第二行输出 PANG,否则输出 Hai Xing。


输入样例 1:

100.1 1.74

输出样例 1:

33.1

PANG

输入样例 2:

65 1.70

输出样例 2:

22.5

Hai Xing

AC代码:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    double weight,hight;
    cin>>weight>>hight;
    double judge=weight/pow(hight,2);
    printf("%.1lf\n",judge);
    if(judge>25)
        cout<<"PANG";
    else
        cout<<"Hai Xing";
}

⭐L1-063 吃鱼还是吃肉 (10分)

本题题目链接!!!!!

e776eac0641e4af78f9dcf76f07ebce3.png

国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。


现在你要根据小宝宝的身高体重,给出补充营养的建议。


输入格式:

输入在第一行给出一个不超过 10 的正整数 N,随后 N 行,每行给出一位宝宝的身体数据:


性别 身高 体重


其中性别是 1 表示男生,0 表示女生。身高和体重都是不超过 200 的正整数。


输出格式:

对于每一位宝宝,在一行中给出你的建议:


如果太矮了,输出:duo chi yu!(多吃鱼);

如果太瘦了,输出:duo chi rou!(多吃肉);

如果正标准,输出:wan mei!(完美);

如果太高了,输出:ni li hai!(你厉害);

如果太胖了,输出:shao chi rou!(少吃肉)。

先评价身高,再评价体重。两句话之间要有 1 个空格。


输入样例:

4

0 130 23

1 129 27

1 130 30

0 128 27


输出样例:

ni li hai! duo chi rou!

duo chi yu! wan mei!

wan mei! shao chi rou!

duo chi yu! shao chi rou!

AC代码:

#include<iostream>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int sex,hight,weight;
    for(int i=1;i<=n;i++)
    {
        cin>>sex>>hight>>weight;
        if(sex==0)
        {
            if(hight<129)
                cout<<"duo chi yu!"<<" ";
            else 
            {
                if(hight==129)
                    cout<<"wan mei!"<<" ";
                else
                    cout<<"ni li hai!"<<" ";
            }           
            if(weight<25)
                cout<<"duo chi rou!";
            else
            {
                if(weight==25)
                    cout<<"wan mei!";
                else
                    cout<<"shao chi rou!";
            }
            cout<<endl;              
        }
        if(sex==1)
        {
            if(hight<130)
                cout<<"duo chi yu!"<<" ";
            else 
            {
                if(hight==130)
                    cout<<"wan mei!"<<" ";
                else
                    cout<<"ni li hai!"<<" ";
            }       
            if(weight<27)
                cout<<"duo chi rou!";
            else 
            {
                if(weight==27)
                    cout<<"wan mei!";
                else
                    cout<<"shao chi rou!";
            }
            cout<<endl;                              
        }
    }
}

⭐L1-062 幸运彩票 (15分)

本题题目链接!!!!!

彩票的号码有 6 位数字,若一张彩票的前 3 位上的数之和等于后 3 位上的数之和,则称这张彩票是幸运的。本题就请你判断给定的彩票是不是幸运的。


输入格式:

输入在第一行中给出一个正整数 N(≤ 100)。随后 N 行,每行给出一张彩票的 6 位数字。


输出格式:

对每张彩票,如果它是幸运的,就在一行中输出 You are lucky!;否则输出 Wish you good luck.。


输入样例:


2

233008

123456


输出样例:


You are lucky!

Wish you good luck.

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n, i, j, sum1, sum2;
    string s;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        cin>>s;
        sum1 = 0, sum2 = 0;
        for (j = 0; j < 3; j++)
        {
            sum1 += s[j]-'0';
        }
        for (j = 3; j < 6; j++)
        {
            sum2 +=s[j]-'0' ;
        }
        if (sum1 == sum2)
            printf("You are lucky!\n");
        else
            printf("Wish you good luck.\n");
    }
    return 0;
}

⭐L1-058 6翻了 (15分)

本题题目链接!!!!

“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!


本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。


输入格式:

输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。


输出格式:

从左到右扫描输入的句子:如果句子中有超过 3 个连续的 6,则将这串连续的 6 替换成 9;但如果有超过 9 个连续的 6,则将这串连续的 6 替换成 27。其他内容不受影响,原样输出。


输入样例:


it is so 666 really 6666 what else can I say 6666666666


输出样例:


it is so 666 really 9 what else can I say 27

 AC代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
  string s;
  getline(cin,s);
  int i,num=0,j;
  for(i=0;i<s.size();i++)
    {
    if(s[i]=='6')
        {
      num++;
    }
        else
        {
      if(num<=3)
            {
        for(j=0;j<num;j++)
                {
          printf("6");
        }
      }
            else if(num>3 && num<=9)
            {
          printf("9");
      }
            else
            {
        printf("27");
      }
      num=0;
      cout<<s[i];
         }
  }
  if(num>0){
    if(num<=3)
        {
      for(j=0;j<num;j++)
            {
        printf("6");
      }
    }
        else if(num>3 && num<=9)
        {
        printf("9");
    }
        else
        {
      printf("27");
    }
  }
  return 0;
} 

⭐L1-059 敲笨钟 (20分)

本题题目链接!!!!!

微博上有个自称“大笨钟V”的家伙,每天敲钟催促码农们爱惜身体早点睡觉。为了增加敲钟的趣味性,还会糟改几句古诗词。其糟改的方法为:去网上搜寻压“ong”韵的古诗词,把句尾的三个字换成“敲笨钟”。例如唐代诗人李贺有名句曰:“寻章摘句老雕虫,晓月当帘挂玉弓”,其中“虫”(chong)和“弓”(gong)都压了“ong”韵。于是这句诗就被糟改为“寻章摘句老雕虫,晓月当帘敲笨钟”。


现在给你一大堆古诗词句,要求你写个程序自动将压“ong”韵的句子糟改成“敲笨钟”。


输入格式:

输入首先在第一行给出一个不超过 20 的正整数 N。随后 N 行,每行用汉语拼音给出一句古诗词,分上下两半句,用逗号 , 分隔,句号 . 结尾。相邻两字的拼音之间用一个空格分隔。题目保证每个字的拼音不超过 6 个字符,每行字符的总长度不超过 100,并且下半句诗至少有 3 个字。


输出格式:

对每一行诗句,判断其是否压“ong”韵。即上下两句末尾的字都是“ong”结尾。如果是压此韵的,就按题面方法糟改之后输出,输出格式同输入;否则输出 Skipped,即跳过此句。


输入样例:

5

xun zhang zhai ju lao diao chong, xiao yue dang lian gua yu gong.

tian sheng wo cai bi you yong, qian jin san jin huan fu lai.

xue zhui rou zhi leng wei rong, an xiao chen jing shu wei long.

zuo ye xing chen zuo ye feng, hua lou xi pan gui tang dong.

ren xian gui hua luo, ye jing chun shan kong.


输出样例:

xun zhang zhai ju lao diao chong, xiao yue dang lian qiao ben zhong.

Skipped

xue zhui rou zhi leng wei rong, an xiao chen jing qiao ben zhong.

Skipped

Skipped

AC代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
  int n;
  cin>>n;
  string s;
  getchar();
  for(int i=1;i<=n;i++)
  {
    getline(cin,s);
    int judge1=0,judge2=0;
    int count1=0,count2=0;
    for(int j=0;j<s.size();j++)
    {
      if(s[j]==',')
      {
        if(s[j-1]=='g'&&s[j-2]=='n'&&s[j-3]=='o')
          judge1=1;
      }
      else if(s[j]=='.')
      {
        if(s[j-1]=='g'&&s[j-2]=='n'&&s[j-3]=='o')
          judge2=1;
      }
      if(s[j]==' ')
        count1++;
    }
    if(judge1&&judge2)
    {
      for(int j=0;j<s.size();j++)
      {
        if(s[j]==' ')
          count2++;
        if(count2==count1-2)
          break;
        else
          cout<<s[j];
      }
      cout<<" qiao ben zhong."<<endl;
    }
    else
      cout<<"Skipped"<<endl;
  }
}

⭐L1-064 估值一亿的AI核心代码 (20分)

本题题目链接!!!!!

以上图片来自新浪微博。


本题要求你实现一个稍微更值钱一点的 AI 英文问答程序,规则是:


无论用户说什么,首先把对方说的话在一行中原样打印出来;

消除原文中多余空格:把相邻单词间的多个空格换成 1 个空格,把行首尾的空格全部删掉,把标点符号前面的空格删掉;

把原文中所有大写英文字母变成小写,除了 I;

把原文中所有独立的 can you、could you 对应地换成 I can、I could—— 这里“独立”是指被空格或标点符号分隔开的单词;

把原文中所有独立的 I 和 me 换成 you;

把原文中所有的问号 ? 换成惊叹号 !;

在一行中输出替换后的句子作为 AI 的回答。

输入格式:

输入首先在第一行给出不超过 10 的正整数 N,随后 N 行,每行给出一句不超过 1000 个字符的、以回车结尾的用户的对话,对话为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。


输出格式:

按题面要求输出,每个 AI 的回答前要加上 AI: 和一个空格。


输入样例:

6

Hello ?

Good to chat with you

can you speak Chinese?

Really?

Could you show me 5

What Is this prime? I,don 't know

输出样例:

Hello ?

AI: hello!

Good to chat with you

AI: good to chat with you

can you speak Chinese?

AI: I can speak chinese!

Really?

AI: really!

Could you show me 5

AI: I could show you 5

What Is this prime? I,don 't know

AI: what Is this prime! you,don’t know

AC代码:

#include<bits/stdc++.h>
using namespace std;
bool If(char c)
{
  if(c == '0')
    return false;
  if(c >='a' && c<='z')
    return false;
  if(c >= 'A' && c <= 'Z')
    return false;
  if(c >='0' && c <= '9')
    return false;
  return true;
}
string replace(string s1,string s2,string s3)
{
  for(int i=0;;i++)
  {
    int l=s1.find(s2,i), r = l + s2.size()-1;
    if(l == -1)
      break;
    if(l == 0 && (s1[r+1] == ' ' || If(s1[r+1])))
    {
      s1.replace(l, r-l+1,s3);
    }   
    else if(r == s1.size() -1 && (s1[l - 1]==' ' || If(s1[l - 1])))
    {
      s1.replace(l, r-l+1,s3); 
    }
    else if((s1[r+ 1]==' '|| If(s1[r+1]))&&(s1[l -1] == ' '|| If(s1[l-1])))
    {
      s1.replace(l, r-l+1,s3);
    }
  }
  return s1;
}
int main()
{
  int n;
  cin>>n;
  getchar();
  while(n--)
  {
    string s;
    getline(cin,s);
    cout<<s<<endl;  
    for(int i=0;i<s.size();i++)
    {
      if(s[i]==' ')
      {
        int j=i;
        while(j+1 < s.size()&& s[j+1] == ' ')
          j++;
        s.erase(i,j - i);
        i=j;
      }
    }
    if(s.size()!=0 && s[0]== ' ')
      s.erase(0,1);
    if(s.size()!=0 && s[s.size() - 1]==' ')
      s.erase(s.size() -1,1);
    for(int i=1;i < s.size();i++)
    {
      if(If(s[i])&&s[i-1]==' ')
      {
        s.erase(i - 1,1);
        i--;
      }
    }
    for(int i=0;i < s.size();i++)
    {
      if(s[i] >= 'A' && s[i] <= 'Z' && s[i]!='I')
        s[i] +='a' - 'A';
    }
    s = replace(s,"can you","A can");
    s = replace(s,"could you","A could");
    s = replace(s,"I","you");
    s = replace(s, "me","you");
    for(int i=0;i < s.size();i++)
    {
      if(s[i] == '?')
        s[i]='!';
      if(s[i]=='A')
        s[i]='I';
    }
    cout<<"AI: "<<s<<endl;
  }
  return 0;
}

⭐L2二阶题(目前还没有上传哈!!敬请期待!!)

⭐L3三阶题(目前也还没有上传哈!!敬请期待!!)

⭐写在最后

🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟

嘟嘟嘟嘟嘟!!!

刷题真的好累呀,真的好枯燥无味呀!好不容易熬过了高中上了大学我为什么要自找苦吃去像高中那样奋力拼搏呢,各位童学肯定都有过这样的想法吧,上大学不就是疯玩的嘛,直接就摆烂起来了哈哈!但我想说的是,大学不是我们的终点哦,它是我们一个新的起点。当然,我也能够理解大家,不是说我们必须一天到晚都要和题目“鬼混”在一起,但是我们总归需要每天拿出点时间出来学习的吧,毕竟当你整天打游戏的时候也是会感觉无聊的吧。其实我们大多数时候都是因为感到焦虑才去以玩游戏的方式来“欺骗”自己,而缓解焦虑的最好办法就是让自己忙起来咯!学习的确挺反人性的,但坚持下来的话未来才可能更美好更轻松吖!一起加油呀!


🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟

另外本题集还有二阶三阶题没有上传,后续会继续上传完善的哦!

最后祝小伙伴们天天开心,生活愉快!!!

🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟🌟

57ea5b6cc38a43ec91adfc93d3f342f9.jpg

相关文章
团体程序设计天梯赛-练习集L2篇⑨
团体程序设计天梯赛-练习集L2篇⑨
160 0
|
程序员
2017年 团体程序设计天梯赛——题解集
⭐L1-038 新世界 (5分) 本题题目链接👈 👈 👈 👈 👈 这道超级简单的题目没有任何输入。 你只需要在第一行中输出程序员钦定名言“Hello World”,并且在第二行中输出更新版的“Hello New World”就可以了。
393 0
|
前端开发 JavaScript 开发者
2016年 团体程序设计天梯赛——题解集
⭐ L1-028 判断素数 (10分) 本题题目链接 本题的目标很简单,就是判断一个给定的正整数是否素数。 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于2 31 的需要判断的正整数。 输出格式: 对每个需要判断的正整数,如果它是素数,则在一行中输出Yes,否则输出No。
256 0
|
Linux 测试技术 容器
2020年 团体程序设计天梯赛——题解集(1)
⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!) ⭐L1-065 嫑废话上代码 (5分) 本题题目链接!!!!! Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。 输入格式: 本题没有输入。
229 0
|
人工智能 算法 安全
2022年 团体程序设计天梯赛——题解集(2)
⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!) ⭐L1-081 今天我要赢 (5分)——水题 本题题目链接!!!!! 2018 年我们曾经出过一题,是输出“2018 我们要赢”。今年是 2022 年,你要输出的句子变成了“我要赢!就在今天!”然后以比赛当天的日期落款。
308 0
|
小程序 Linux
2020年 团体程序设计天梯赛——题解集(2)
⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!) ⭐L1-065 嫑废话上代码 (5分) 本题题目链接!!!!! Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。 输入格式: 本题没有输入。
241 0
|
芯片
2022年 团体程序设计天梯赛——题解集(1)
⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!) ⭐L1-081 今天我要赢 (5分)——水题 本题题目链接!!!!! 2018 年我们曾经出过一题,是输出“2018 我们要赢”。今年是 2022 年,你要输出的句子变成了“我要赢!就在今天!”然后以比赛当天的日期落款。
374 0
|
机器学习/深度学习
2018年 团体程序设计天梯赛——题解集
⭐L1-051 打折 (5分) 本题题目链接👈👈👈👈👈 去商场淘打折商品时,计算打折以后的价钱是件颇费脑子的事情。例如原价 ¥988,标明打 7 折,则折扣价应该是 ¥988 x 70% = ¥691.60。本题就请你写个程序替客户计算折扣价。 输入格式: 输入在一行中给出商品的原价(不超过1万元的正整数)和折扣(为[1, 9]区间内的整数),其间以空格分隔。 输出格式: 在一行中输出商品的折扣价,保留小数点后 2 位。
545 0
|
机器学习/深度学习 人工智能 程序员
2023年 团体程序设计天梯赛个人感悟及总结(附题解)——遗憾国三
⭐L1一阶题 ⭐L1-089 最好的文档 (5分)—水题 👉👉👉👉👉👉L1-089 最好的文档👈👈👈👈👈👈 有一位软件工程师说过一句很有道理的话:“Good code is its own best documentation.”(好代码本身就是最好的文档)。本题就请你直接在屏幕上输出这句话。 输入格式: 本题没有输入。 输出格式: 在一行中输出 Good code is its own best documentation.。 输入样例: 无 输出样例: Good code is its own best documentation.
779 0
7-10 排座位 —— 程序设计天梯赛
布置宴席最微妙的事情,就是给前来参宴的各位宾客安排座位。无论如何,总不能把两个死对头排到同一张宴会桌旁!这个艰巨任务现在就交给你,对任何一对客人,请编写程序告诉主人他们是否能被安排同席。
149 0
7-10 排座位 —— 程序设计天梯赛