CSP2019 练习赛
3 小时完成
(请选手务必仔细阅读本页内容)
一. 题目概况
中文题目名称 | 碎片 | 龙珠 | 仓库 |
英文题目名称 | piece | dragon | warehouse |
可执行文件名 | piece | dragon | warehouse |
输入文件名 | piece.in | dragon.in | warehouse.in |
输出文件名 | piece.out | dragon.out | warehouse.out |
每个测试点时限 | 1 秒 | 1 秒 | 1 秒 |
测试点数目 | 10 | 10 | 10 |
每个测试点分值 | 10 | 10 | 10 |
附加样例文件 | 有 | 有 | 有 |
结果比较方式 | 全文比较 过滤行末空格 及文末回车 |
全文比较 过滤行末空格 及文末回车 |
全文比较 过滤行末空格 及文末回车 |
题目类型 | 传统 | 传统 | 传统 |
二. 提交源程序文件名
对于 pascal 语言 | piece.pas | dragon.pas | warehouse.pas |
对于 C 语言 | piece.c | dragon.c | warehouse.c |
对于 C++语言 | piece.cpp | dragon.cpp | warehouse.cpp |
三. 运行内存限制
内存上限 | 128M | 128M | 256M |
四. 注意事项
1、 文件名(程序名和输入输出文件名)必须使用小写。
2、 C/C++中函数 main()的返回值类型必须是 int,程序正常结束时的返回值必须是 0。
3、 全国统一评测时采用的机器配置为: CPU 1.9GHz,内存 1G,上述时限以此配置为准。各省在自测时可
根据具体配置调整时限。
模拟赛 提高组
1. 碎片
【问题描述】
给你一个由字母构成的字符串 S。每一步操作,我们可以擦除其中一个子序列。 单要求
被擦除的子序列必须是一个回文词。问,要擦除掉整个字符串,最少需要多少步操作?
例如,将“abcba”从“abyczbea”中擦除,就是合法的一步。
【输入】
一行,一个字符串。
【输出】
一个整数。表示最小操作次数。
【输入输出样例】
输入样例 1 | 样例输入 2 | 样例输入 3 |
aa | abb | abyazbya |
样例输出 1 | 样例输出 2 | 样例输出 3 |
1 | 2 | 2 |
【样例说明】无
【数据范围】
对于 100% 的数据: 字符串的长度<=16
2. 龙珠
【问题描述】
你得到了一个龙珠雷达,它会告诉你龙珠出现的时间和地点。
龙珠雷达的画面是一条水平的数轴,每一个窗口时间,数轴的某些点上会出现同一种
龙珠,每当你获得其中一颗龙珠,其它龙珠就会消失。下一个窗口时间,数轴上又会出现另
一种龙珠。总共有 n 个窗口时间,也就是总共有 n 种龙珠。
假设你会瞬间移动,你从数轴的 x 点移动到 y 点,耗时 0 秒,但是需要耗费|x-y|的体
力。同时,挖出一颗龙珠也需要耗费一定的体力。请问,最少耗费多少体力,就可以收集齐
所有种类的龙珠。
【输入】
第一行,三个整数 n,m,x,表示共有 n 个窗口时间,每个窗口时间会出现 m 个龙珠, x
是一开始你所处的位置。
接下来有两个 n*m 的矩阵。
对于第一个矩阵,坐标为(i,j)的数字表示第 i 个窗口时间,第 j 个龙珠的位置。
对于第二个矩阵,坐标为(i,j)的数字表示第 i 个窗口时间,挖取第 j 个龙珠所需的体力。
【输出】
一个整数,表示所需最小体力。
【输出输出样例】
输入样例 1 | 样例输入 2 |
3 2 5 2 3 4 1 1 3 1 1 1 3 4 2 |
5 3 55 71 88 27 45 6 71 43 36 1 85 12 72 69 7 45 19 4 12 5 17 11 3 13 11 6 15 4 9 5 16 |
样例输出 1 | 样例输出 2 |
8 | 113 |
【样例说明】无
【数据范围】
所有数据均为整数
数轴范围在 0 到 30000
挖一颗龙珠所需体力不超过 30000
结果保证在 int 范围
对于 50%的数据, 1<=n<=50,1<=m<=500。
对于 100%的数据, 1<=n<=50,1<=m<=5000。
3. 仓库
(warehouse.pas/c/cpp)
【问题描述】
某星系有 n 个星球,星球以及星球间的航线形成一棵树。
从星球 a 到星球 b 要花费[dis(a,b) Xor M]秒。(dis(a,b)表示 ab 间的航线长度,
Xor 为位运算中的异或) 。
请计算星球 i(1<=i<=n)到其它所有星球花费的时间之和。
【输入】
第一行包含两个正整数 n, M。
接下来 n-1 行,每行 3 个正整数 a,b,c,表示 a, b 之间的航线长度为 c。
【输出】
n 行,每行一个整数,表示星球 i 到其它所有星球花费的时间之和。 保证答案不超过
2*10^9
【输出输出样例】
输入样例 1 | 样例输入 2 |
4 0 1 2 1 1 3 2 1 4 3 |
6 3 1 2 2 1 3 1 2 4 3 2 5 1 5 6 2 |
样例输出 1 | 样例输出 2 |
6 8 10 12 |
15 3 19 23 17 17 |
【数据范围】
6 | 0 |
100 | 5 |
2000 | 9 |
50000 | 0 |
50000 | 0 |
50000 | 1 |
50000 | 6 |
100000 | 10 |
100000 | 13 |
100000 | 15 |