智能算法挑战赛决赛题目——初中组

题目 1. 判断是否存在重复的子序列

从 m 个字符中选取字符,生成 n 个符号的序列,使得其中没有 2 个相邻的子序列相同。如从 1,2,3,生成长度为 5 的序列,序列"12321"是合格的,而"12323"和"12123"是不合格。问:已知 m 和 n 都是小于等于 10 的数字,求 m 个不同字符,组成长度n 的序列中,无 2 个相邻相同的子序列的序列总数?

输入:

一行两个正整数,第一个是 m,表示不同的字符,第二个是 n,表示序列长度,0<m<=n<=10.

输出:

一个数,表示序列种没有 2 个相邻相同子序列的序列总数。

输入举例:

3 5

输出举例:

30

题目 2. 村村通工程

在平原地区,政府想把 n 个村庄(n<100)之间修建直线距离最短的新马路,并保证所有村庄之间都有新马路可以连通。已知每个村庄的经纬度(坐标),求总距离最短的修路方案,并给出最短的总距离。

输入:

第一行为村庄数 n,n<100

以下 n 行,每行两个实数(可能带小数的)数字,分别是经度和纬度坐标

输出:

最短的总距离,单位千米,保留 2 为小数。

输入举例:

3 5 2 4 3 5 2

输出举例:

1.41

题目 3. 病人看病

病人登记看病,按照如下规则安排病人看病的顺序。

(1) 老年人(年龄>=60 岁)比非老年人优先看病。

(2) 老年人按照年龄大小的顺序看病,相同年龄的老年人按照登记的顺序看病。

(3) 非老年人按照登记的顺序看病。

输入:

第一行,输入一个小于 100 的正整数,表示病人的个数。 后面按照病人登记的先后顺序,每行一个病人的信息号,和病人的年龄,中间用空格隔开;病人的信息号(ID)是一个长度小于 10 的字符串,字符串只包含数字或者字母。

输出:

按看病规则顺序排列的病人 ID,每行表示一个人,依次输出。

输入举例:

5

021075 40

004003 15

010158 67

021033 75

102012 30

输出举例:

021033

010158

021075

004003

102012

题目 4. 生命体的族群模拟

科学家用 AI 模拟生命体的族群分类情况,假设有 n 个新生的生命体,每个生命体都有一个生命值,两个生命体相遇时会发生从斗争到认识到合并到同一族群的过程,在不同族群里面的生命体,如果相遇时,会找到本族群最强者进行两两对决,每次斗争都会让参与者的生命值减半,例如原来是生命值 10,进行斗争后变成 5,原来是 5,进行斗争后变成2,如果生命值是 1,斗争后还维持为 1。斗争后两个族群就合并在一起了,如果两个生命体来自于同一个个族群,则它们不会发生斗争问题。请编写程序,求出每一个对决序列,两个相遇的生命体进行对决后,组成的新的族群的最强者的生命值,如果该对决序列的两个生命体属于同一族群则输出-1。

输入:

第一行是一个整数 n,表示有多少个生命体。

第二行到第 n+1 行是每个生命体的生命值。

第 n+2 行是一个整数 m,表示要进行认识的生命体对的数量。

最后面的 m 行,每行有两个数字,表示要进行对决的生命体的序号。

输出:

对每一对要进行接触的生命体,给出对决后,组成的新的族群的最强者的生命值,如果两者在同一个族群,则输出-1.

输入举例:

5

20

16

10

10

4

5

2 3

3 4

3 5

4 5

1 5

输出举例:

8

5

5

-1

10

相关推荐
大鱼>7 分钟前
因子挖掘+回测+RL交易:量化金融完整系统
人工智能·深度学习·算法·金融
c238562 小时前
《枚举算法 “翻译官”:用 enum class 给 “游游的礼盒” 算分》
c语言·c++·算法
noipp2 小时前
推荐题目:洛谷 P5843 [SCOI2012] Blinker 的噩梦
c语言·数据结构·c++·算法·游戏·洛谷·luogu
极客BIM工作室2 小时前
OpenCascade 倒角(Chamfer)算法完整逻辑解析
算法
冻柠檬飞冰走茶2 小时前
PTA基础编程题目集 7-20 打印九九口诀表(C语言实现)
c语言·开发语言·数据结构·算法
鱼子星_2 小时前
《算 · 法》题目解析篇(1):最近公共祖先问题,线段树,最长回文子序列
c++·算法·动态规划·递归
雾喔2 小时前
算法练习5
算法·代理模式
问商十三载2 小时前
RAG 检索召回越多越好?2026 信噪比模型深度解析
人工智能·算法·机器学习
额恩662 小时前
ResearchPilot 第三阶段总结报告
python·算法
Hi李耶3 小时前
【LeetCode】9-回文数
算法·leetcode·职场和发展