0607 第 29 场 蓝桥·算法挑战赛
0607 第 29 场 蓝桥·算法挑战赛
T1. 国赛加油【算法赛】
题目描述
蓝桥杯国赛即将开始,祝大家在国赛中取得优异的成绩!
在 “国赛加油” 这四个汉字中,每个字的笔画结构中都包含若干个封闭区域(即封闭矩形),例如:
- “口” 字中有 1 个封闭矩形;
- “日” 字中有 3 个封闭矩形;
- “田” 字中有 9 个封闭矩形。
现在请你判断并计算 “国赛加油” 四个汉字中,每个字各自包含多少个封闭矩形区域。
样例输入
无
样例输出
输出一行 个由空格隔开的整数,表示 “国赛加油” 四个汉字中,每个字各自包含多少个封闭矩形区域。
T2. 赛飞儿之旅【算法赛】
问题描述
失落的盗寇之都多洛斯,三百侠盗纵情游戏,横行无忌。
捷足的贼星赛法利娅,戏弄「诡计」火种的黄金裔,奔走吧。愿你的谎言随风同行,吹遍此世大地
有一个环形跑道上,跑道被分为了 块区域,按照顺时针将区域编号为 , 号区域与 号区域相邻。
赛飞儿初始在 号区域,他希望去往 号区域,但麻烦的是他只能顺时针向前移动。为了尽快到达目标区域,他还可以在开始移动前至多使用一次 "瞬间移动"。
"瞬间移动":将当前位置向前移动 格区域或向后移动 格区域。
每次移动一个区域将会消耗一格体力,请问赛飞儿最少要花费多少体力可以到达目标区域。
注意:"瞬间移动" 不会消耗赛飞儿体力。
输入格式
输入一行 个整数 。
输出格式
输入一个整数表示答案。
样例输入 1
5 1 5 2
样例输出
1
样例输入 2
5 4 5 2
样例输出 2
1
样例说明
对于样例 ,可以使用 "瞬间移动" 至 号区域再移动。
对于样例 ,不使用 "瞬间移动" 更好。
T3. blue 密钥【算法赛】
问题描述
琥珀纪 2157 年,星核猎手银狼在一次任务中,成功入侵了星际和平公司的一座秘密数据金库。金库的核心防御由一串冗长的加密忆泡序列 构成,其长度为 的倍数。
经过初步解析,银狼发现这种加密协议相当古老:所有忆泡根据其在序列中的位置,被分配到了四条独立的「以太信道」上。她可以启动“小助手”程序,对序列进行重组,具体如下:
- 选择序列中任意一个位置 (),交换第 号忆泡与第 号忆泡的内容。此操作可以进行任意多次。
银狼的情报指出,解开金库的“钥匙”并非某个单一的密码,而是隐藏在序列中的特定代码。当连续的四个忆泡恰好构成 这一序列时,便意味着成功拼凑出了一把完整的“秘钥”。每一把秘钥都能解开金库中的一份档案。
现在请你帮助银狼计算,他最多能从初始的加密忆泡序列 中,拼凑出多少把 秘钥?
输入格式
输入一行,为一个仅由小写英文字母组成的字符串 。(, 表示字符串 的长度,且 是 的倍数)
输出格式
输出一行,为一个整数,代表能拼凑出的 秘钥的最大数量。
样例输入
blueblue
样例输出
2
T4. 逐火之旅【算法赛】
问题描述
光历 2506 年,纷争世初尼卡多利锻斫世百兵,欲取诸支柱泰坦首级。唯有歌耳戈部族追随其行迹,途径特雷托斯城时,歌耳戈徒手击杀为害多年的猛狮。众人逐尼卡多利数年后,终于被其认可,获授天谴之锋;以巨石相砌,层层拱卫这柄锋刃,最终与 2506 年砌成一座移动要塞——此即最初的悬锋之城。歌耳戈即为第一代悬锋之王,后世尊其为「悬锋建城者」、「搦狮之王」。
光历 3870 年自由月,"逐火之旅" 正式开启。
光历 4931 年,两名天外之人降临翁法罗斯。
现在开拓者和丹恒在翁法罗斯遇到了一个奇怪的谜题,给定一个指定的年份区间 ,询问你有多少个年份存在 这段数字。例如 是符合要求的年份,而 是不符合要求的年份。但你无需输出有多少个年份存在 ,只需要输出这些年份的和即可。
输入格式
输入一行,包含两个正整数 。
输出格式
输出一行,为 中所有含有 这段数字的年份的和。
样例输入 1
114514 1919810
样例输出 1
562209021
样例输入 2
1 34725
样例输出 2
44793
T5. 蔡光想成为星铁大师【算法赛】
题目描述
自从那一战以后, 便接手成为贝罗伯格下层区的领导者。
贝罗伯格下层区错综复杂,可以抽象为 个点, 条边长不一致的无向图。而其中的人民也有三六九等,划分他们的方式很特殊:找得到其中最小生成树的是上等人;找得到其中次小生成树的是中等人;剩余的找得到第三小生成树的人称为下等人。
定义:生成树为经过所有 个点 ,有 条边的联通图。最小生成树边权和在所有生成树中最小,次小生成树边权和仅比最小生成树大,第三小生成树的边权和仅比最小生成树和次小生成树大。
显然最小生成树、次小生成树、第三小生成树不一定唯一。但满足
现在, 要去除旧时代的残党,他找到蔡光想要知道这三等人所找得到的生成树权值和分别是多少,你能帮帮蔡光吗?
样例输入
第一行两个整数 。
接下来 行,对第 行,每行三个整数 。含义如题,数据保证边权两两不同。
样例输出
输出 行,包含三个整数 ,分别代表上中下等人找得到的生成树权值是多少,或输出 报告不存在这种人。
样例输入 1
3 3
1 2 1
2 3 2
3 1 3
样例输出 1
3 4 5
样例输入 2
3 2
1 2 1
2 3 2
样例输出 2
3 -1 -1
T6. 开发模拟宇宙【算法赛】
问题描述
模拟宇宙是由黑塔和其他天才俱乐部的成员(<创生领域大师>阮•梅、<机械贵族>螺丝咕姆、<怪人>斯蒂芬•劳艾德)开发的一个用于研究星神的模拟系统。
现在天才们为了更好的开发模拟宇宙,设计了一款模拟宇宙管理工具 9it
。
模拟宇宙中有 份文件,初始的第 份文件上记录了数字 ,随后天才们会多次更改文件上的数字,我们将每次修改后的整个序列 称为一个模拟宇宙版本,9it
会记录模拟宇宙的所有历史版本。
9it
支持分支操作,使得所有的历史版本构成了一棵树形结构。初始仅有一条分支(编号为 1),包含一个初始版本。
修改数字操作会在当前分支下产生一个新版本节点,创建分支操作则会在当前分支的最新版本节点下创建两个子版本节点,分别作为原分支和新分支,新分支的初始内容和原分支相同,随后在新分支上进行的修改会独立记录,不再影响原分支的内容。
9it
可以在多个分支间来回切换,修改不同版本的模拟宇宙内容,但如果两个分支在分叉后都对同一个文件进行过修改,则我们称这两条分支不兼容。天才们希望你帮他检查两条分支是否兼容。
具体来说,9it
需要支持以下操作:
upd x y
将当前分支的第x
项修改为y
。branch x
移动到分支x
;若编号为x
的分支不存在,则会先在当前分支下创建分支x
,再移动到x
query x k
查询分支x
上的第k
个文件,你需要输出它上面的数字。check x y k
检查分支x
和分支y
上的第k
个文件是否兼容,即这两个分支是否同时修改了k
。若兼容则输出YES
,否则输出NO
。
注意:仅在两个分支分开后各自进行的独立修改才会导致不兼容,分叉前进行的修改没有影响;
再注:即使修改内容相同,只要都进行过修改,即视为不兼容。
输入格式
第一行包含两个正整数 ,表示模拟宇宙文件个数和操作次数。
第二行包括 个正整数 。
接下来 行,每行表示一个操作,具体格式如上所述。
保证输入合法,保证分支编号 ,修改内容
输出格式
对于所有 query
和 check
操作,做出相应输出。
样例输入
3 8
3 2 5
upd 2 5
branch 2
upd 1 6
query 1 1
check 1 2 1
branch 1
upd 1 4
check 1 2 1
样例输出
3
YES
NO
说明
所有命令执行完后的状态如图所示:
分支 1 和分支 2 在 3,5,5
处分叉,第一次检查时,分支 2 将第一位更改为 6,而分支 1 没有进行更改; 第二次检查时,分支 2 将第一位更改为 6,分支 1 将第一位更改为 4,存在冲突。