2023团体程序设计天梯赛——模拟赛和总决赛题

2023-12-11 09:04

本文主要是介绍2023团体程序设计天梯赛——模拟赛和总决赛题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

M-L1-1 嫑废话上代码

Linux 之父 Linus Torvalds 的名言是:“Talk is cheap. Show me the code.”(嫑废话,上代码)。本题就请你直接在屏幕上输出这句话。

输入格式:

本题没有输入。

输出格式:

在一行中输出 Talk is cheap. Show me the code.

输入样例:

输出样例:

Talk is cheap. Show me the code.
#include <stdio.h>int main()
{printf("Talk is cheap. Show me the code.\n");return 0;
}

M-L1-2 九牛一毛

牛.JPG

这是一道脑筋急转弯题:猪肉一斤 15 元,鸡肉一斤 20 元,那么一毛钱能买多少头牛?

答案是:9 —— 因为“九牛一毛”。

本题就请你按照这个逻辑,计算一下 N 块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。

输入格式:

输入在一行中给出一个不超过 1000 的正整数 N,即以“元”为单位的货币量。

输出格式:

在一行中顺序输出 N 块钱能买多少斤猪肉、多少斤鸡肉、多少头牛。三个数字都只取整数部分,其间以 1 个空格分隔,行首尾不得有多余空格。

输入样例:

18

输出样例:

1 0 1620

#include <stdio.h>
int main(){int n ;scanf("%d",&n);int num_cows = n / 0.1 * 9;// 计算能买多少斤猪肉和鸡肉int num_pork =n / 15;int num_chicken = n / 20;// 输出结果printf("%d %d %d\n", num_pork, num_chicken, num_cows);return 0;
}

M-L1-3 小孩子才做选择,大人全都要

select.JPG

阿汪面前有两只盲盒,每只盒子打开都有两种可能:或者装了 X 克狗粮,或者是一只容量为 Y 克的狗粮储蓄盒。如果是狗粮,阿汪可以快乐地吃掉;如果是空储蓄盒,那就倒霉了,阿汪必须想办法找到狗粮把这只储蓄盒装满,自己还吃不到。

正当阿汪发愁不知道该怎么选的时候,铲屎官大手一挥:“小孩子才做选择,大人全都要!”但全都要的结果,却不一定是赚了还是亏了……

我们假设聪明的阿汪总是能嗅出狗粮最多的盒子,并且绝不会选任何储蓄盒。而铲屎官没有这样的鼻子,他一定是全都要。铲屎官如果打开了有储蓄盒的盒子,就必须想办法把储蓄盒装满,他会优先用另一只盒子里的狗粮装(如果另外一只盒子里有狗粮),不够了还得自己去买新的狗粮,这样阿汪可就亏啦,什么都吃不到了。本题就请你判断阿汪到底是赚了还是亏了。

输入格式:

输入在一行中给出两个整数,绝对值都不超过 100,中间用一个空格分开,分别代表两只盒子里的东西。如果是正数就表示是狗粮的份量,如果是负数就表示绝对值是空盆的容量。两个数都肯定不是 0,因为保证没有空盒子。

输出格式:

第一行输出两个结果:如果让阿汪选能吃到的狗粮 A,和如果铲屎官全都要能吃到的狗粮 B。两个数字间用一个空格分开。如果铲屎官的决定让阿汪赚到了,就在第二行输出一个笑脸 ^_^,否则输出一个哭脸 T_T。但如果反正什么都吃不到(两个盒子里都没有狗粮),就输出一张躺平脸 -_-

输入样例 1:

12 18

输出样例 1:

18 30
^_^

输入样例 2:

12 -18

输出样例 2:

12 0
T_T
/*#include <stdio.h>
#include <math.h>
int main() {int x, y;scanf("%d%d", &x, &y);// 如果两个数的乘积小于0,说明一个是狗粮,一个是空盆if (x * y < 0) {// 选择狗粮最多的盒子int a = (x > y) ? x : y;// 如果有空盆,铲屎官全都要的狗粮就是狗粮多的盒子减去空盆的绝对值int b = (abs(x) > abs(y)) ? abs(x - abs(y)) : 0;printf("%d %d\n", a, b);printf("T_T"); // 输出哭脸} // 如果两个数的乘积大于0,说明两个盒子都是狗粮或者都是空盆else if (x * y > 0) {// 选择狗粮最多的盒子int a = (x > y) ? x : y;// 如果两个盒子都是狗粮,铲屎官全都要的狗粮就是两个盒子狗粮的总和// 如果两个盒子都是空盆,铲屎官全都要的狗粮就是0int b = x + y;printf("%d %d\n", a, b);printf("^_^"); // 输出笑脸} // 如果两个数的乘积等于0,说明两个盒子一个是狗粮一个是空盆else {printf("-_-"); // 输出躺平脸}return 0;
}*/
#include <stdio.h>int main() {int n, m;scanf("%d %d", &n, &m); // 从标准输入读取两个整数if (n > 0 && m > 0) { // 如果两个数都大于0int max = (n > m) ? n : m; // 选择较大的数printf("%d %d\n", max, (n + m)); // 输出结果printf("^_^"); // 输出笑脸} else if (n > 0 && m < 0) { // 如果一个大于0一个小于0m = -m; // 将负数变为正数if (n < m) {printf("%d 0\n", n); // 输出结果printf("T_T"); // 输出哭脸} else {printf("%d %d\n", n, (n - m)); // 输出结果printf("T_T"); // 输出哭脸}} else if (n < 0 && m > 0) { // 如果一个小于0一个大于0n = -n; // 将负数变为正数if (m < n) {printf("%d 0\n", m); // 输出结果printf("T_T"); // 输出哭脸} else {printf("%d %d\n", m, (m - n)); // 输出结果printf("T_T"); // 输出哭脸}} else { // 如果两个数都小于0printf("0 0\n"); // 输出结果printf("-_-"); // 输出躺平脸}return 0;
}

M-L1-4 拯救外星人

T.jpg

你的外星人朋友不认得地球上的加减乘除符号,但是会算阶乘 —— 正整数 N 的阶乘记为 “N!”,是从 1 到 N 的连乘积。所以当他不知道“5+7”等于多少时,如果你告诉他等于“12!”,他就写出了“479001600”这个答案。

本题就请你写程序模仿外星人的行为。

输入格式:

输入在一行中给出两个正整数 A 和 B。

输出格式:

在一行中输出 (A+B) 的阶乘。题目保证 (A+B) 的值小于 12。

输入样例:

3 6

输出样例:

362880

#include <stdio.h>
int main(){int x , y ;scanf("%d %d",&x,&y); // 从标准输入读取两个整数,去掉多余的换行符\nint ret = 1 ; // 将ret初始化为1int sum = x + y;for(int i = 1; i <= sum; ++i ){ // 更改循环变量名为i,并修改循环逻辑ret *= i; // 计算阶乘}printf("%d\n",ret);return 0;
}

M-L1-5 试试手气

sz.png

我们知道一个骰子有 6 个面,分别刻了 1 到 6 个点。下面给你 6 个骰子的初始状态,即它们朝上一面的点数,让你一把抓起摇出另一套结果。假设你摇骰子的手段特别精妙,每次摇出的结果都满足以下两个条件:

  • 1、每个骰子摇出的点数都跟它之前任何一次出现的点数不同;
  • 2、在满足条件 1 的前提下,每次都能让每个骰子得到可能得到的最大点数。

那么你应该可以预知自己第 n 次(1≤n≤5)摇出的结果。

输入格式:

输入第一行给出 6 个骰子的初始点数,即 [1,6] 之间的整数,数字间以空格分隔;第二行给出摇的次数 n(1≤n≤5)。

输出格式:

在一行中顺序列出第 n 次摇出的每个骰子的点数。数字间必须以 1 个空格分隔,行首位不得有多余空格。

输入样例:

3 6 5 4 1 4
3

输出样例:

4 3 3 3 4 3

样例解释:

这 3 次摇出的结果依次为:

6 5 6 6 6 6
5 4 4 5 5 5
4 3 3 3 4 3
#include <stdio.h>
int main ()
{int arr[6]={0};int n;for(int i = 0;i<6 ; ++i)scanf("%d",&arr[i]);scanf("%d",&n);int ret = 0;for( int i = 0 ;i<6;++i){if((7-n)>arr[i]){if(ret)printf(" ");ret = 1;printf("%d",7-n);}else{if(ret)printf(" ");ret = 1;printf("%d",7-n-1);}}return 0;
}

M-L1-6 打PTA

打PTA.jpg

传说这是集美大学的学生对话。本题要求你做一个简单的自动问答机,对任何一个问句,只要其中包含 PTA 就回答 Yes!,其他一概回答 No.

输入格式:

输入第一行给出一个整型范围内的正整数 N,随后 N 行,每行给出一个长度不超过 80 的字符串,为用户输入的句子,由英文字母、数字、空格和标点符号组成,以回车结束。

输出格式:

对每一行句子,如果其结尾字符为问号 ? 则判断此句中有无 PTA?如果有则在一行中输出 Yes!,否则输出 No.。如果不是问号结尾,则敷衍地回答 enen

输入样例:

5
Hello!
Do you still play WZRY?
Chi Ji?
you play PTA ah?
how about pta site?

输出样例:

enen
No.
No.
Yes!
No.
#include<stdio.h>
#include<string.h>char arr[100];char p[5]="PTA";
int main (){int n ,lent;scanf("%d",&n);getchar();while(n--){gets(arr);lent = strlen(arr);if(arr[lent-1]!='?'){printf("enen\n");continue;}if(strstr(arr,p)!=NULL){printf("Yes!\n");continue;}else{printf("No.\n");}}
}

这篇关于2023团体程序设计天梯赛——模拟赛和总决赛题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/480154

相关文章

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

usaco 1.2 Transformations(模拟)

我的做法就是一个一个情况枚举出来 注意计算公式: ( 变换后的矩阵记为C) 顺时针旋转90°:C[i] [j]=A[n-j-1] [i] (旋转180°和270° 可以多转几个九十度来推) 对称:C[i] [n-j-1]=A[i] [j] 代码有点长 。。。 /*ID: who jayLANG: C++TASK: transform*/#include<

hdu4431麻将模拟

给13张牌。问增加哪些牌可以胡牌。 胡牌有以下几种情况: 1、一个对子 + 4组 3个相同的牌或者顺子。 2、7个不同的对子。 3、13幺 贪心的思想: 对于某张牌>=3个,先减去3个相同,再组合顺子。 import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.IOExcepti

CSP 2023 提高级第一轮 CSP-S 2023初试题 完善程序第二题解析 未完

一、题目阅读 (最大值之和)给定整数序列 a0,⋯,an−1,求该序列所有非空连续子序列的最大值之和。上述参数满足 1≤n≤105 和 1≤ai≤108。 一个序列的非空连续子序列可以用两个下标 ll 和 rr(其中0≤l≤r<n0≤l≤r<n)表示,对应的序列为 al,al+1,⋯,ar​。两个非空连续子序列不同,当且仅当下标不同。 例如,当原序列为 [1,2,1,2] 时,要计算子序列 [

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟)

【每日一题】LeetCode 2181.合并零之间的节点(链表、模拟) 题目描述 给定一个链表,链表中的每个节点代表一个整数。链表中的整数由 0 分隔开,表示不同的区间。链表的开始和结束节点的值都为 0。任务是将每两个相邻的 0 之间的所有节点合并成一个节点,新节点的值为原区间内所有节点值的和。合并后,需要移除所有的 0,并返回修改后的链表头节点。 思路分析 初始化:创建一个虚拟头节点

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

【算法专场】模拟(下)

目录 前言 38. 外观数列 算法分析 算法思路 算法代码 1419. 数青蛙 算法分析 算法思路 算法代码  2671. 频率跟踪器 算法分析 算法思路 算法代码 前言 在前面我们已经讲解了什么是模拟算法,这篇主要是讲解在leetcode上遇到的一些模拟题目~ 38. 外观数列 算法分析 这道题其实就是要将连续且相同的字符替换成字符重复的次数+

模拟实现vector中的常见接口

insert void insert(iterator pos, const T& x){if (_finish == _endofstorage){int n = pos - _start;size_t newcapacity = capacity() == 0 ? 2 : capacity() * 2;reserve(newcapacity);pos = _start + n;//防止迭代

HNU-2023电路与电子学-实验3

写在前面: 一、实验目的 1.了解简易模型机的内部结构和工作原理。 2.分析模型机的功能,设计 8 重 3-1 多路复用器。 3.分析模型机的功能,设计 8 重 2-1 多路复用器。 4.分析模型机的工作原理,设计模型机控制信号产生逻辑。 二、实验内容 1.用 VERILOG 语言设计模型机的 8 重 3-1 多路复用器; 2.用 VERILOG 语言设计模型机的 8 重 2-1 多

C语言程序设计(数据类型、运算符与表达式)

一、C的数据类型 C语言提供的数据类型: 二、常量和变量 2.1常量和符号常量 在程序运行过程中,其值不能被改变的量称为常量。 常量区分为不同的类型: 程序中用#define(预处理器指令)命令行定义变量将代表常量,用一个标识符代表一个常量,称为符合常量。 2.2变量 变量代表内存中具有特定属性的一个存储单元,用来存放数据,在程序运行期间,这些值是可以 改变的。 变