【拼题A】2024跨年挑战赛

2024-01-01 18:52
文章标签 2024 挑战赛 跨年 拼题

本文主要是介绍【拼题A】2024跨年挑战赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

      • 跨年-1 特殊的年份
        • 输入格式:
        • 输出格式:
        • C++代码
      • 跨年-2 穿什么衣服
        • 输出格式:
        • 输入样例:
        • 输出样例:
        • C++ 代码
      • 跨年-3 按比例发奖
        • 输入格式:
        • 输出格式:
        • 输入样例:
        • 输出样例:
        • C++代码
      • 跨年-4 骗钱的手机游戏
        • 输入格式:
        • 输出格式:
        • 输入样例:
        • 输出样例:
        • C++代码
      • 跨年-5 找年兽
        • 输入格式:
        • 输出格式:
        • 输入样例:
        • 输出样例:
        • C++代码
      • 跨年-6 新年烟花
        • 输入格式:
        • 输出格式:
        • 输入样例:
        • 输出样例:
        • C++代码
      • 跨年-7 奇因子之和
        • 输入格式:
        • 输出格式:
        • 输入样例:
        • 输出样例:
        • C++代码
      • 跨年-8 翻箱倒柜(复刻)
        • 输入格式:
        • 输出格式:
        • 输入样例:
        • 输出样例:
        • C++代码

跨年-1 特殊的年份

请找到一个最小的公元年份,使得该年份能同时被 23、11 和 8 整除。

冷知识:只要加上足够多的限制,任何年份都可以是一个特殊的年份。

输入格式:

该题没有输入。

输出格式:

输出一行,格式为 YYYY is a special year!。

输入样例:

输出样例:

1999 is a special year!
C++代码
#include <iostream>void solve()
{std::cout << "2024 is a special year!";
}int main()
{int t = 1;std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);//cin >> t;while (t--){solve();}return 0;
}

跨年-2 穿什么衣服

……但你在温暖的家里,并不知道有多冷。

现在你要出门了,你发现:不知道该穿多少衣服。你决定查一查天气,根据温度决定穿多少衣服出门。

以下是妈妈给的参考清单:

温度 穿什么衣服 备注
[ 15 , 30 ) [15, 30) [15,30) 听妈妈的(Mama) 问问妈妈穿什么吧
[ − 10 , 15 ) [-10, 15) [10,15)羽绒服(YuRongFu) 穿件羽绒服吧
[ − 100 , − 10 ) [-100, -10) [100,10) 不出门(Zhai) 都这么冷了,还是在家待着吧
输入格式:
输出一行一个整数 C ( − 100 ≤ C < 30 ) C (−100≤C<30) C(100C<30),表示目前的温度。

输出格式:

输出当前的温度和该穿的衣服,用空格隔开。该穿的衣服输出上面表格中括号内的部分,注意区分大小写。

输入样例:
-8
输出样例:
-8 YuRongFu
C++ 代码
#include <iostream>void solve()
{int c;std::cin >> c;std::cout << c << ' ';if (c >= 15 && c < 30) std::cout << "Mama";else if (c < 15 && c >= -10) std::cout << "YuRongFu";else if (c >= -100 && c < -10) std::cout << "Zhai";
}int main()
{int t = 1;std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);//cin >> t;while (t--){solve();}return 0;
}

跨年-3 按比例发奖

我猜你一定知道了,今年的团体程序设计天梯赛的个人奖改为按比例发奖,具体规则是:

大于等于 175 分的选手颁发个人奖;所有符合上述规则的选手,按分数高低排名,按 1:3:6 的比例颁发个人一等奖、二等奖及三等奖。为预先准备颁奖,你需要完成一个简单的计算程序。现在给出大于等于 175 分的选手人数及若干选手的实际排名,请依次输出他们的对应奖项级别。

输入格式:

输出第一行是两个正整数 N,M ( 10 ≤ N ≤ 10 10≤N≤10 10N10 5 , 1 ≤ M ≤ 100 1≤M≤100 1M100),表示大于等于 175 分的选手的人数以及要询问奖项的选手人数。

接下来的 M 行,每行一个正整数 R i R_i Ri ( 1 ≤ R i ≤ N 1≤R_i≤N 1RiN),表示询问奖项选手的排名。

为方便计算,我们保证 N 是 10 的倍数。

输出格式:

对于每个选手的排名,输出 1,2,3 中的一个,表示应该获得一等奖、二等奖还是三等奖。

输入样例:
100 10
1
10
11
30
40
41
60
61
99
100
输出样例:
1
1
2
2
2
3
3
3
3
3
C++代码
#include <iostream>
#include <vector>int n, m, r;void solve()
{std::cin >> n >> m;std::vector<int> v;while (m--){std::cin >> r;if (r >= 1 && r <= n * 0.1) std::cout << 1 << std::endl;else if (r > n * 0.1 && r <= n * 0.4) std::cout << 2 << std::endl;else if (r > n * 0.4) std::cout << 3 << std::endl;}
}int main()
{int t = 1;std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);//cin >> t;while (t--){solve();}return 0;
}

跨年-4 骗钱的手机游戏

某个骗钱的手机游戏里的游戏角色的稀罕度总共有 9 个级别,从常见到罕见分别是:

R、R+、SR、SR+、SSR、SSR+、UR、UR+、LR

假设所有稀罕度后面有加号(+)的都需要消耗两个同等级的角色升到下一等级(例如 SR+ 升级到 SSR 需要消耗 2 个 SR+ 的角色),而没有加号的只需要消耗 1 个同等级的角色(例如 UR 升级到 UR+ 只需要一个 UR 角色),请给出将能升级的角色都升级后,每个稀罕度分别有几个角色。

为了给没玩过这类游戏的同学更好地解释题意,我们可以将角色升级理解为“大鱼吃小鱼”。例如:

对任意两条目前稀罕度是 R 的鱼,在一次升级后,其中一条会吃掉另外一条,你会获得一条稀罕度为 R+ 的鱼,另外一条就被消耗掉了。

同理,一个稀罕度为 R+ 的角色,在消耗两个稀罕度为 R+ 的角色后,可以变身为一个稀罕度为 SR 的角色。

注意 LR 不能再升级了。

输入格式:

输入一行 9 个非负整数,分别从常见到罕见给出 9 个等级的初始角色数量。

角色数量小于等于 1 0 7 10^7 107

输出格式:

输出一行 9 个非负整数,用空格隔开,表示升级后的角色数量。

输入样例:
1001 1002 900 899 799 700 601 501 400
输出样例:
1 2 0 0 0 1 0 0 743
C++代码
#include <iostream>const int N = 10;int a[N];void solve()
{for (int i = 1; i <= 9; i++){std::cin >> a[i];}for (int i = 1; i <= 9; i++){// i & 1 ? a[i] += a[i - 1] / 3, a[i - 1] = a[i - 1] % 3//         : a[i] += a[i - 1] / 2, a[i - 1] = a[i - 1] % 2;if (i & 1) {a[i] += a[i - 1] / 3, a[i - 1] = a[i - 1] % 3;} else {a[i] += a[i - 1] / 2, a[i - 1] = a[i - 1] % 2;}}for (int i = 1; i <= 8; i++){std::cout << a[i] << ' ';}std::cout << a[9];
}int main()
{int t = 1;std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);//cin >> t;while (t--){solve();}return 0;
}

跨年-5 找年兽

传统中,过春节需要打年兽。为了打败年兽,你得找到年兽。

请你在一个字符串里找到所有年兽。

输入格式:

输入在一行中给出一个字符串,只包含所有 ASCII 的可见字符,不包括回车。字符串长度不超过 1 0 4 10^4 104

输出格式:

输出一行两个数用空格隔开,第一个数字表示年兽的个数,第二个数字表示第一个年兽出现的位置。

年兽以Nian代表,字符串的位置从 0 开始。区分大小写。如果没有找到年兽,位置输出为 -1。

输入样例:
Jin Nian Ming Nian Dou Hui Wang Wang Wang! Nian nian you yu!
输出样例:
3 4
C++代码
#include <iostream>void solve()
{std::string str;getline(std::cin, str);bool flag = false;int cnt = 0, idx = 0;for (int i = 0; i < str.size(); i++){if (str.substr(i, 4) == "Nian"){cnt++;if (!flag){flag = true;idx = i;}}}if (!cnt) {std::cout << "0 -1\n";} else {std::cout << cnt << ' ' << idx << '\n';}
}int main()
{int t = 1;std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);//cin >> t;while (t--){solve();}return 0;
}

跨年-6 新年烟花

新年来临,许多地方会举行烟花庆典庆祝。小 C 也想参加庆典,但不幸的是跟他一个想法的人实在太多,活动场地全是人人人人人人人人人……

活动场地可视作一个 N × M N×M N×M 的矩阵,其中有一些格子是空的,另外有一些格子则被人或者建筑物占领了。烟花会在一些格子上开始燃放,一个空的格子是一个对小 C 而言的优秀的观赏位置,当且仅当这个格子能看到三个及以上不同格子上燃放的烟花。一个格子能看到一个燃放的烟花,指的是:

格子与烟花在同一行或同一列;
格子与烟花的连线上的所有格子,要不是空格子,要不格子上的任何物体的高度小于小 C 的身高。
现在给定活动场地的情况以及小 C 的身高,请找到所有对小 C 而言的优秀的观赏位置,并输出能看到最多的烟花的格子的坐标。

输入格式:

输入第一行是三个正整数 N , M , H ( 1 ≤ N , M ≤ 50 , 1 ≤ H ≤ 210 ) N,M,H (1≤N,M≤50,1≤H≤210) N,M,H(1N,M50,1H210),表示活动场地矩阵大小为 N × M N×M N×M,小 C 的身高为 H H H

接下来的 N 行,每行 M 个整数,整数的含义如下:

如果是一个正整数,则表示该格子被人或建筑物占据,高度为对应的值。
如果是一个负整数,则表示该格子用于燃放烟花。所有燃放烟花的格子视为没有高度。
如果是 0,则表示该格子是空格子。
所有整数的绝对值不超过 500。

输出格式:

输出第一行是一个正整数,表示对小 C 而言的优秀观赏位置有多少个。

接下来输出能看到最多的燃放烟花的格子的坐标 (X,Y),即格子在第 X 行、第 Y 列,数字间以 1 个空格分隔。当存在多组坐标时,只输出最小的那组,即输出 X 最小的解;X 相同时输出 Y 最小的解。

矩阵左上角坐标为 (0,0) ,保证至少存在一个对小 C 而言的优秀观赏位置。

输入样例:
10 10 175
0 0 0 0 0 0 0 0 0 0
0 50 0 180 -100 180 0 70 30 0
0 30 0 0 300 0 0 0 0 0
0 250 0 0 -100 0 0 0 0 0
0 -100 174 0 0 0 0 169 -100 0
0 -100 0 0 0 0 0 0 -100 0
0 -1 0 0 170 0 0 0 0 0
0 5 0 0 300 0 0 0 0 0
0 20 0 0 -100 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
输出样例:
6
3 8
C++代码
#include <iostream>
#include <vector>#define x first
#define y secondconst int N = 55;int n, m, h, res = 0;
int g[N][N];int count(int curx, int cury, std::vector<std::pair<int, int>> &vec)
{int ans = 0;for (auto c: vec){bool flag = true;if (curx == c.x) //同行{int mi = std::min(c.y, cury), mx = std::max(c.y, cury);for (int j = mi; j <= mx; j++)if ((g[curx][j] > 0 && g[curx][j] >= h)){flag = false;break;}} else if (cury == c.y) //同列{int mi = std::min(c.x, curx), mx = std::max(c.x, curx);for (int i = mi; i <= mx; i++)if ((g[i][cury] > 0 && g[i][cury] >= h)){flag = false;break;}}if (flag) ans++;}return ans;
}void solve()
{std::cin >> n >> m >> h;for (int i = 0; i < n; i++)for (int j = 0; j < m; j++)std::cin >> g[i][j];int maxcnt = -1;std::vector<std::pair<std::pair<int, int>, int>> ans;for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (g[i][j] != 0) continue;std::vector<std::pair<int, int>> vec;for (int k = 0; k < m; k++)if (g[i][k] < 0)vec.emplace_back(i, k);for (int k = 0; k < n; k++)if (g[k][j] < 0)vec.emplace_back(k, j);int cnt = count(i, j, vec);if (cnt >= 3){ans.push_back({{i, j}, cnt});maxcnt = std::max(cnt, maxcnt);res++;}}}std::cout << res << std::endl;for (auto c: ans){//std::cout << c.x.x << ' ' << c.x.y << std::endl;if (c.y == maxcnt){std::cout << c.x.x << ' ' << c.x.y << '\n';break;}}
}int main()
{int t = 1;std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);//cin >> t;while (t--){solve();}return 0;
}

跨年-7 奇因子之和

一个整数的因子,就是所有可以整除这个数的数。奇数指在整数中,不能被 2 整除的数。所谓整数 Z 的奇因子,就是可以整除 Z 的奇数。
给定 N 个正整数,请你求出它们的第二大奇因子的和。当然,如果该数只有一个奇因子,就用它唯一的那个奇因子去求和。

输入格式:

输入第一行给出一个正整数 N ( ≤ 1000 ) N(≤1000) N1000)。随后一行给出 N 个不超过 1 0 6 10 ^6 106的正整数。

输出格式:

在一行中输出所有给定整数的第二大奇因子之和。

输入样例:
5
147 12 35 78 4
输出样例:
71
C++代码
#include <iostream>
#include <vector>void solve()
{int n, x, res = 0;std::cin >> n;for (int i = 1; i <= n; i++){std::cin >> x;std::vector<int> vec;for (int j = 1; j <= x && vec.size() <= 2; j++){if (x % j == 0 && (x / j) & 1)vec.push_back(x / j);}res += vec.size() == 1 ? vec[0] : vec[1];}std::cout << res << std::endl;
}int main()
{int t = 1;std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);//cin >> t;while (t--){solve();}return 0;
}

跨年-8 翻箱倒柜(复刻)

翻箱倒柜找东西大概是所有人头痛的事情。大部分人类在识别物体的时候,更容易识别颜色而不是大小的差异。所以当我们想从一大堆杂乱堆放的长方体盒子中找到我们需要的盒子时,根据颜色找比根据尺寸找要容易。现在的问题是,我们只知道尺寸不知道颜色…… 所以就要请你从这些盒子的记录中快速找出需要的盒子的编号及颜色。

输入格式:

输入第一行给出一个正整数 N ( ≤ 1 0 5 ) N(≤10^5 ) N105,为盒子的总数。随后 N 行,每行列出一只盒子的长、宽、高、颜色值。再后面是查询数量 K ( ≤ 100 ) K(≤100) K100,随后 K 行,每行给出一个需要查询的盒子的长、宽、高。
这里所有尺寸都是不超过 1 0 9 10^9 109的正整数,颜色值按 RRR.GGG.BBB 格式给出,三个分值都在 [ 0 , 255 ] [0, 255] [0,255] 区间内。
同一行中的数字以空格分隔。题目保证给出的 N 只盒子的尺寸都不相同,即不存在两只盒子具有相同的长、宽、高。注意:尺寸为 1、2、3 的盒子跟尺寸为 3、2、1的盒子是不同的。盒子的编号按输入顺序从 1 开始递增编号。

输出格式:

对每个查询的盒子,在一行中按输入相同的格式输出其编号及颜色。如果这个尺寸的盒子不存在,则输出 Not Found。

输入样例:
10
15 23 23 000.255.136
12 32 15 255.000.092
29 32 15 000.000.255
15 23 25 255.255.000
10 15 23 000.000.000
12 17 15 255.255.255
15 10 23 023.189.163
29 32 33 233.069.215
9 31 987 179.002.031
40 15 23 230.000.000
6
15 23 23
12 17 15
29 32 33
10 15 15
15 32 12
9 31 987
输出样例:
1 000.255.136
6 255.255.255
8 233.069.215
Not Found
Not Found
9 179.002.031
C++代码
#include <bits/stdc++.h>int n, m, h, k, x, res;const int N = 50 + 7;void solve()
{std::cin >> n;std::map<std::pair<int, std::pair<int, int>>, std::pair<int, std::string>> ump;for (int i = 1; i <= n; ++i){int a, b, c;std::string str;std::cin >> a >> b >> c >> str;ump[{a, {b, c}}] = {i, str};}
//    for (auto [k, v]: ump)
//    {
//        std::cout << k.first << '\n';
//    }std::cin >> k;while (k--){int a, b, c;std::cin >> a >> b >> c;if (!ump.count({a, {b, c}})){std::cout << "Not Found\n";} else{std::cout << ump[{a, {b, c}}].first << ' ' << ump[{a, {b, c}}].second << '\n';}}
}int main()
{int t = 1;std::ios::sync_with_stdio(false), std::cin.tie(nullptr), std::cout.tie(nullptr);//cin >> t;while (t--){solve();}return 0;
}

这篇关于【拼题A】2024跨年挑战赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题

题库来源:安全生产模拟考试一点通公众号小程序 2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题是由安全生产模拟考试一点通提供,流动式起重机司机证模拟考试题库是根据流动式起重机司机最新版教材,流动式起重机司机大纲整理而成(含2024年流动式起重机司机证模拟考试题库及流动式起重机司机理论考试试题参考答案和部分工种参考解析),掌握本资料和学校方法,考试容易。流动式起重机司机考试技

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

高效录音转文字:2024年四大工具精选!

在快节奏的工作生活中,能够快速将录音转换成文字是一项非常实用的能力。特别是在需要记录会议纪要、讲座内容或者是采访素材的时候,一款优秀的在线录音转文字工具能派上大用场。以下推荐几个好用的录音转文字工具! 365在线转文字 直达链接:https://www.pdf365.cn/ 365在线转文字是一款提供在线录音转文字服务的工具,它以其高效、便捷的特点受到用户的青睐。用户无需下载安装任何软件,只

2024网安周今日开幕,亚信安全亮相30城

2024年国家网络安全宣传周今天在广州拉开帷幕。今年网安周继续以“网络安全为人民,网络安全靠人民”为主题。2024年国家网络安全宣传周涵盖了1场开幕式、1场高峰论坛、5个重要活动、15场分论坛/座谈会/闭门会、6个主题日活动和网络安全“六进”活动。亚信安全出席2024年国家网络安全宣传周开幕式和主论坛,并将通过线下宣讲、创意科普、成果展示等多种形式,让广大民众看得懂、记得住安全知识,同时还

2024/9/8 c++ smart

1.通过自己编写的class来实现unique_ptr指针的功能 #include <iostream> using namespace std; template<class T> class unique_ptr { public:         //无参构造函数         unique_ptr();         //有参构造函数         unique_ptr(

论文翻译:arxiv-2024 Benchmark Data Contamination of Large Language Models: A Survey

Benchmark Data Contamination of Large Language Models: A Survey https://arxiv.org/abs/2406.04244 大规模语言模型的基准数据污染:一项综述 文章目录 大规模语言模型的基准数据污染:一项综述摘要1 引言 摘要 大规模语言模型(LLMs),如GPT-4、Claude-3和Gemini的快

免费也能高质量!2024年免费录屏软件深度对比评测

我公司因为客户覆盖面广的原因经常会开远程会议,有时候说的内容比较广需要引用多份的数据,我记录起来有一定难度,所以一般都用录屏工具来记录会议内容。这次我们来一起探索有什么免费录屏工具可以提高我们的工作效率吧。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  录屏软件录屏功能就是本职,这款录屏工具在录屏模式上提供了多种选项,可以选择屏幕录制、窗口

论文翻译:ICLR-2024 PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS

PROVING TEST SET CONTAMINATION IN BLACK BOX LANGUAGE MODELS https://openreview.net/forum?id=KS8mIvetg2 验证测试集污染在黑盒语言模型中 文章目录 验证测试集污染在黑盒语言模型中摘要1 引言 摘要 大型语言模型是在大量互联网数据上训练的,这引发了人们的担忧和猜测,即它们可能已

轻松录制每一刻:探索2024年免费高清录屏应用

你不会还在用一些社交工具来录屏吧?现在的市面上有不少免费录屏的软件了。别看如软件是免费的,它的功能比起社交工具的录屏功能来说全面的多。这次我就分享几款我用过的录屏工具。 1.福晰录屏大师 链接直达:https://www.foxitsoftware.cn/REC/  这个软件的操作方式非常简单,打开软件之后从界面设计就能看出来这个软件操作的便捷性。界面的设计简单明了基本一打眼你就会轻松驾驭啦

梳理2024年,螺丝钉们爱用的3款剪辑软件

这年头,视频到处都是,就跟天上的星星一样数不清。不管你是公司里的新面孔,还是职场上的老狐狸,学会怎么剪视频,就好比找到了赢的秘诀。不管是给上司汇报工作,展示你的产品,还是自己搞点小视频记录生活,只要是剪辑得漂亮,肯定能一下子吸引大家的目光,让人记得你。咱们今天就来侃侃现在超火的三款视频剪辑工具,尤其是PR剪辑,你肯定听说过,这货在剪辑界可是大名鼎鼎,用它剪视频,既专业又麻利。 NO1. 福昕轻松