2024睿抗机器人开发者大赛CAIP编程赛个人题解

T1:热?热?热?

题目描述:

热?热?热?……最近热得打的字都出汗了!

幸好某连锁餐厅开启了气温大于等于 35 度即可获得一杯免费雪碧的活动。但不知为何,在每个星期四的时候,这个活动会暂停一天……

现在给定连续的若干天的气温情况以及给定的第一天是星期几,请你算出有多少天你可以喝到免费的雪碧,又有多少天是因为星期四而导致你喝不到雪碧的。

输入格式:
输入第一行是两个正整数 N, W (1≤N≤50,1≤W≤7),表示给定连续的 N 天,下面给定的第一天是星期 W(7 等于星期天)。

接下来的一行给出 N 个用一个空格隔开的、小于 60 的整数,第 i 个数表示第 i 天的温度。保证温度大于等于 -273 度。

输出格式:
输出两个数,第一个是你能喝到免费雪碧的天数,第二个是你本来能喝到免费雪碧、但因为是星期四而无法喝到的天数。

输入样例:
15 3
33 35 34 36 37 40 32 31 30 29 28 29 33 38 40

输出样例:
5 1

思路:直接模拟就好

代码:

#include<bits/stdc++.h>

using namespace std;

int n, w;

int main()
{
	cin >> n >> w;
	
	int a1 = 0, a2 = 0;
	int x;
	for (int i = 0; i < n; ++ i)
	{
		cin >> x;
		
		if(x >= 35)
		{
			if(w == 4) a2 ++;
			else a1 ++;
		}
		w ++;
		if(w > 7) w = 1;
	}
	
	cout << a1 << ' ' << a2;
	
	return 0;
}

T2:

题目描述:

Xepa Legends 是一个第一人称射击类大逃杀(“吃鸡”)游戏,每轮游戏共有 20 支 3 人小队参加,最后获胜的队伍被称为“捍卫者”。

最近 Xepa Legends 举行了亚太地区南赛区的线上比赛,争夺 7 个前往德国曼海姆参加线下赛的资格,国内共有 14 支队伍参与到了其中。因为比赛十分激烈,直到最后谁进了线下仍有巨大的疑问。小 K 喜欢的国内知名战队 DreamTear 因其队内选手杀马特表现不佳,正好卡在出线分数前后,请你赶紧帮帮小 K,计算一下最后的分数情况,看看他喜欢的战队出线了没有吧!

Xepa Legends 的比赛共进行 N 场游戏,在每场游戏中,每支队伍在游戏中会获得一个排名和一个杀敌数(击败其他队伍玩家的数量),一支队伍在一场游戏的得分为杀敌数+排名分,排名分由队伍当场的排名根据以下表格求得:

排名    分数
第一名    12 分
第二名    9 分
第三名    7 分
第四名    5 分
第五名    4 分
第六名至第七名    3 分
第八名至第十名    2 分
第十一名至第十五名    1 分
第十六名至第二十名    0 分
例如,

DreamTear 战队在第三场比赛获得了第三名、有 6 个杀敌数,那么他们将获得 7 + 6 = 13 分;

### 2024编程道详情 #### JAVA编程技能 针对Java编程语言的比项目,参者需运用Java解决一系列算法数据结构问题。此事旨在考察选手对Java的理解及其应用能力。完整的题目和试做案例可以在官方指定网站找到[^1]。 #### 开发者大赛(RAICOM) CAIP编程技能 该竞分为省级和国家级两个阶段。获得省级一等奖的参队伍有机会晋级全国总决。值得注意的是,部分费用可能由学校承担或提供奖励金给获奖学生;然而具体情况取决于各院校政策[^2]。 #### 输入输出实例分析 对于特定类型的输入样本,如`3 5 1 2 50 ...`等复杂组合的数据集,程序需要能够处理并返回预期的结果。这些测试用例通常用于验证解决方案的有效性和效率[^3]。 #### 数据结构算法挑战 在某些情况下,当遇到成对节点之间的关系判定时,如果发现共同祖先,则表明形成了闭合路径(即环),此时应增加计数器值;反之则执行联合操作来构建新的连接关系[^4]。 ```java // Java code snippet demonstrating union-find algorithm to detect cycles. public class UnionFind { private int[] parent; public UnionFind(int n){ this.parent = new int[n]; for (int i=0; i<n; ++i) parent[i]=i; } public void union(int p, int q){ int rootP=find(p); int rootQ=find(q); if(rootP==rootQ)return; // Perform the union operation here... parent[rootP]=rootQ; } public boolean connected(int p,int q){ return find(p)==find(q); } private int find(int x){ while(x!=parent[x]){ parent[x]=parent[parent[x]]; // Path compression optimization x=parent[x]; } return x; } } ```
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dawpro_加薪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值