牛客山东理工大学第四届新生赛思考与总结(C语言)

简介: .AI 绘图是近期很流行的一种画图程序,它可以通过一些标签自动生成二次元图片,也可以给出图片来画新图片。每个标签可以通过花括号({})来设置权重,标签之间用逗号(,)分隔。

1

AI 绘图是近期很流行的一种画图程序,它可以通过一些标签自动生成二次元图片,也可以给出图片来画新图片。每个标签可以通过花括号({})来设置权重,标签之间用逗号(,)分隔。


最近 Messywind 沉迷于 AI 绘图,他用的标签太多以至于统计不过来了,请你帮他输出每个标签的名称以及权重。


权重的定义为花括号的层数,若没有花括号权重为 000


输入描述:


第一行包含一个长度不超过 10310 ^ 3103 字符串 SSS


字符串只包含大小写英文字母、数字、{}、,、_,保证用逗号(,)分隔标签且行末无逗号(,)


数据保证每种标签只出现一次,无重复标签。


输出描述:


按标签的出现顺序输出 xxx 行,其中 xxx 为 SSS 中所有标签出现次数。


每行输出标签名称和标签权重,用空格分隔。

7.png8.png


1.1正确代码:


C语言:kindred_ 提交的代码


提交时间:2022-11-24 15:38:27 语言:C 代码长度:340 运行时间: 2 ms 占用内存:296K运行状态:答案正确

#include <stdio.h>

#include <string.h> //C语言字符串函数

char s[10000];

int main()

{   char a;

   int n=0,i=0;

   scanf("%c",&a);  //1.2输出格式总结:

   for(;a!='\n';)//

   {  

       if(a=='{')   //字符串只包含大小写英文字母、数字、{}、,、_,保证用逗号(,)           分隔标签且行末无逗号(,)

           n++;

       else if(a==',')

       {   printf("%s %d\n",s,n);

           memset(s,'\0',size of(s));

           i=0;

           n=0;

       }

       else if(a!='}')

       {   s[i]=a;

           i++;

       }

       scanf("%c",&a);

   }

  printf("%s %d\n",s,n);

   return 0;

}


1.2输出格式总结:


%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)


%c 字符


%d 有符号十进制整数


%f 浮点数(包括float和doulbe)


%e(%E) 浮点数指数输出[e-(E-)记数法]


%g(%G) 浮点数不显无意义的零"0"


%i 有符号十进制整数(与%d相同)


%u 无符号十进制整数


%o 八进制整数 e.g. 0123


%x(%X) 十六进制整数0f(0F) e.g. 0x1234


%p 指针


%s 字符串


1.3char 字符串简介


在C 语言中,除了前面介绍的int 整型、float / double 浮点数、bool 值….等等,char 字符串也是一种非常重要的数据类型;


字符串:一般用一对双引号””括起的一串字符来表示字符串常量,字符串默认以转义字符 \0 结尾,字符串常量是不可被修改的,如:


"Hello!"、"\aWarning!\a"、"123abc\n"、""


1.4<string.h>头文件介绍


9.png

链接:登录—专业IT笔试面试备考平台_牛客网

来源:牛客网


2题目描述


众所周知,2021 年 6 月的星空杯决赛,MDY 战队的卡莎在决赛圈完成了 1v3 的精彩操作。看过这场比赛后,sty 每次 1v3 时都会大喊:“我要易大山了!我要易大山了!易大山!”。


现在给出一局游戏决赛圈的的击杀记录和 sty 使用的游戏 ID,请你判断 sty 是否完成了一打三。由于决赛圈可能存在多支三人小队,为简化问题,存在以下两个特殊规则:

1. 只要 sty 完成了三次击杀且无论最终是否阵亡,都认为他完成了一打三。

2. 由于重生的 bug 实在是太多了。即使 sty 被击杀后,他击杀其他人仍视为有效击杀。


链接:登录—专业IT笔试面试备考平台_牛客网

来源:牛客网


输入描述:


第一行为一个整数 NNN,代表有 NNN 条击杀记录。


第 222 至 N+1N+1N+1 行为一行字符串,代表击杀记录。


第 N+2N + 2N+2 行为一行字符串,代表 sty 使用的游戏 ID。


格式如下:


3


PlayerName kill PlayerName


PlayerName kill PlayerName


PlayerName kill PlayerName


ID


题目保证 N≤20N \le 20N≤20,PlayerName 和 ID 均为长度不超过 10510 ^ 5105 且仅由字母、数字、下划线组成的非空字符串。

输出描述:

如果 sty 完成了一打三,输出 yidashan!,否则输出 kexi


2.1正确题解:


#include<stdio.h>

#include<string.h>

#include<math.h> //调用数学库

char e[100005],a[20][100001];

int main(){

   int n,flag=0;

   char d;

   scanf("%d",&n);

   d=getchar(); //字符串存入d中

   for(int i=0;i<n;i++){

       scanf("%s kill %s",a[i],e); //%s 对应输入字符串

   }

   scanf("%s",e);

   for(int i=0;i<n;i++){

       if(!strcmp(a[i],e)) flag++;//strcmp比较两个字符串的大小,一个字符一个字符比较,按ASCLL码比较

   }

   if(flag>=3) printf("yidashan!\n");

   else printf("kexi\n");

   return 0;

}


2.2if的用法解析


CSDN

当我们要写多条语句时,要用到{},将代码括起来。

if (表达式)

  语句1;

else

  语句2;

#include <stdio.h>

int main()

{

   int age = 0;

   scanf("%d", &age);

   if (age < 18)

   {

       printf("未成年\n");

   }

   else

   {

       printf("成年\n");

   }

②//多分支

if (表达式1)

      语句1;

else if (表达式2)3.

      语句2;

else

      语句3;

#include <stdio.h>

int main()

{

   int age = 0;

   scanf("%d", &age);

   if (age < 18)

   {

       printf("少年\n");

   }

   else if (age >= 18 && age < 30)

   {

       printf("青年\n");

   }

   else if (age >= 30 && age < 50)

   {

       printf("中年\n");

   }

   else if (age >= 50 && age < 80)

   {

       printf("老年\n");

   }

   else

   {

       printf("老寿星\n");

   }

}

多分支语句:

从上到下依次判断,若符合 if 条件,就执行if下面的语句;若不符合 if ,就看是否满足下一条 else if 的条件;

直到找出符合条件的为止,若所有条件都不符合,就执行 else 的语句。


3


链接:登录—专业IT笔试面试备考平台_牛客网

来源:牛客网

因为 Bulbul 太喜欢说 666 了,yuyansheng 释放了一个魔法,使他忘记了数字 666 的存在。

所以,他在数数的时候会跳过所有包含数字 666 的数,如果让 Bulbul 说出从 111 开始的前十个数字,他会大声喊出: 1 2 3 4 5 7 8 9 10 11 。他说的 777 实际上是 666 , 888 实际上是 777 ,以此类推。

zzk 可以解开这个魔法,条件是 Bulbul 说出一个数字 xxx zzk 可以立刻说出实际上 xxx 是多少,但是 zzk 太笨了,无法立刻说出这是几,所以向聪明的你寻求帮助。

请你编写一个程序,来帮助 zzk 和 Bulbul 解除 yuyansheng 的魔法吧!

链接:登录—专业IT笔试面试备考平台_牛客网

来源:牛客网

输入描述:

第一行为一个整数 NNN (1≤N≤104)(1 \le N \le 10 ^ 4)(1≤N≤104),代表 Bulbul 说出的数的个数。

第二行至第 N+1N + 1N+1 行每行包含一个整数 xix_ixi (1≤xi≤106)(1 \le x_i \le 10 ^ 6)(1≤xi≤106),代表 Bulbul 说出的数字,保证 xix_ixi 中不包含 666

输出描述:

输出共 NNN 行。

第 iii 行表示 xix_ixi 实际上对应的数字。


3.1正确题解:


#include<stdio.h>

int main()

{

   int N;

   scanf("%d",&N);

  int num[1000001]={0};

   int i,t;

   for(i=1;i<=1000000;i++)

   {

       int a=i;

       int b=1;

       while(a)

       {

           if(a%10==6)

               b=0;

           a/=10;

       }

       num[i]=num[i-1]+b;

   }

   for(i=0;i<N;i++)

   {

       scanf("%d",&t);

       printf("%d\n",num[t]);

   }


4


链接:登录—专业IT笔试面试备考平台_牛客网

来源:牛客网

题目描述

yxlxszx 作为知名 OP,每天都花非常多的时间刷圣遗物,希望能让自己心爱的角色早点毕业。作为一个极度自律的人,yxlxszx 每天至少要刷 nnn 次副本,一共有 mmm 个副本。每个副本只能刷一次。但是 yxlxszx 最近 212121 抽抽到了一命小草神,喜出望外导致大脑宕机,你能帮帮 yxlxszx 数一数,他有多少种不同的刷副本方案?

链接:登录—专业IT笔试面试备考平台_牛客网

来源:牛客网

输入描述:

第一行包含两个整数 n,mn,mn,m (1≤n≤m≤60)(1≤n≤m≤60)(1≤n≤m≤60) 表示每天至少要刷的副本次数和所有的副本个数。

输出描述:

输出一个整数,表示不同的刷副本方案。10.png


4.1正确题解:


#include <stdio.h>

int main()

{

   long long m,n,sum=0,c[61];

   c[0] = 1;

   scanf("%lld%lld",&m,&n);

   for(long long i = 1;i<= n;i++)

   {

       c[i] = c[i-1] * (n - i + 1) / i;

   }

   for(int i = m;i <= n;i++)

   {

       sum += c[i];

   }

   printf("%lld",sum);

   return 0;

}


5


链接:登录—专业IT笔试面试备考平台_牛客网

来源:牛客网


示例1

输入  

114514

输出

8

示例2

输入

1092718960

输出

40

示例3

输入

23333333333

输出

2


5.1正确题解:


#include<stdio.h>

int main()

{

   long long n, i, ans = 0;

   scanf("%lld", &n);

   for (i = 1; i*i <= n; i++)

   if (n % i == 0)

   {

       ans++;

    if(n/i!=i)

        ans++;

   }

   printf("%lld", ans);

   return 0;

}

仅上传了几道自己思考过后的题,如有错误,欢迎各位指正!


以下附上此次比赛完整题目:

11.png12.png13.png14.png15.png


16.png17.png18.png19.png20.png




16.png

目录
相关文章
|
20天前
|
C语言
【C语言】备战校赛Day2
【C语言】备战校赛Day2
38 0
|
26天前
|
C语言
王桂林C语言从放弃到入门课程
课程目标16天,每天6节课,每节40分钟课堂实录,带你征服C语言,让所有学过和没有学过C语言的人,或是正准备学习C语言的人,找到学习C语言的不二法门。适用人群所有学过和没有学过C语言的人,或是正准备学习C语言的人!
25 2
王桂林C语言从放弃到入门课程
|
20天前
|
C语言
【C语言】备战校赛Day3
【C语言】备战校赛Day3
29 0
【C语言】备战校赛Day3
|
20天前
|
测试技术 C语言
【C语言】备战校赛Day1
【C语言】备战校赛Day1
36 0
|
4月前
|
C语言
C语言精选好题-你是天才吗?
C语言精选好题-你是天才吗?
29 0
|
10月前
|
机器学习/深度学习 人工智能 程序员
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.
642 0
|
10月前
|
小程序 Linux
2020年 团体程序设计天梯赛——题解集(2)
⭐L1一阶题 (虽然比较基础但是是很重要的一部分,且一些题目有一定难度哦!) ⭐L1-065 嫑废话上代码 (5分) 本题题目链接!!!!! Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。 输入格式: 本题没有输入。
155 0
|
11月前
|
算法
高职考VB技能提升教程003期 杨辉三角 高考信息技术必备
高职考VB技能提升教程003期 杨辉三角 高考信息技术必备
108 0
|
12月前
|
存储 机器学习/深度学习 人工智能
西安石油大学C语言期末重点知识点总结(中)
是我自己在学习完C语言的一次总结,尽管会有许多的瑕疵和不足,但也是自己对C语言的一次思考和探索,也让我开始有了写作博客的习惯和学习思考总结,争取等我将来变得更强的时候再去给它优化出来一版更好的,加油吧少年
66 0
|
12月前
|
机器学习/深度学习 存储 人工智能
西安石油大学C语言期末重点知识点总结(上)
是我自己在学习完C语言的一次总结,尽管会有许多的瑕疵和不足,但也是自己对C语言的一次思考和探索,也让我开始有了写作博客的习惯和学习思考总结,争取等我将来变得更强的时候再去给它优化出来一版更好的,加油吧少年
140 0