拓扑排序
【题解】计算天数
【题目描述】
以 年-月-日
的形式给定一个日期,计算给定的日期是当年第几天。注意闰年二月有29天。
【输入描述】
输入格式为 yyyy-mm-dd
,其中
yyyy
表示给定的年份,mm
表示给定的月份,dd
表示给定的日期。如果这些数字不足四位或二位,以
0
补足。保证月份与日期都是合理的。
【输出描述】
单个整数:表示输入的日期是当年的第几天。
【样例输入1】
2021-12-31
【样例输出1】
365
【样例输入2】
2022-01-01
【样例输出2】
1
【题解】最大平方因子
【题目描述】
给定一个整数 n,请找出 n 的最大平方因子。所谓平方因子,就是一个 n 的因子,且是一个完全平方数。最大平方因子就是 n 的所有平方因子中最大的数。
如 12的最大平方因子为 4,81 的最大平方因子为其本身,21 的最大平方因子为 1。
【输入描述】
单个整数表示 n。
【输出描述】
单个整数表示 n 的最大平方因子。
【样例输入1】
12
【样例输出1】
4
【样例输入2】
81
【样例输出2】
81
【样例输入3】
21
【样例输出3】
1
【数据范围】
对于 50% 的数据,1≤n≤10000;
对于 100% 的数据,1≤n≤10,000,000。
【题解】修改回文
【题目描述】
如果一个字符串,顺读与倒读的内容一样,称这个字符串为回文。例如 aka
是一个回文,noon
也是一个回文。
给定一个字符串,请计算最少需要修改多少个字符,才能将这个字符串变成回文。
单次修改可以将字符串中某一个位置上的字符变成任意一个其他字符。
【输入描述】
一列字符:保证字符仅由小写拉丁字母构成。
【输出描述】
单个整数:表示最少需要多少次修改才能将输入字符串变成回文。
【样例输入1】
abbc
【样例输出1】
1
【样例输入2】
aaa
【样例输出2】
0
【数据范围】
设字符串的长度为 n
50% 的数据,1≤n≤1,000
100% 的数据,1≤n≤1,000,000
【说明】
样例1将c修改成a
样例2不需要修改
2020年CSP-J 初赛题目及答案解析
【题解】盈亏问题
【题目描述】
一群人团购一件物品:
如果每人出 a元,所付总金额比物价多出了x 元;
如果每人少出 1元,也就是每人出a-1元,所付总金额比物价少了y元。
给定 a,x,y求参与团购的人数及该物品的价格。
【输入描述】
单独一行:三个整数:
【输出描述】
单独一行:两个整数。第一个整数表示参与的人数,第二个整数表示物品的价格,中间用一个空格分开。
【样例输入】
8 3 4
【样例输出】
7 53
【数据范围】
1≤a≤1000
1≤x≤1000
1≤y≤1000
【题解】感应门
【题目描述】
感应门会在有人经过的时候自动打开,冷却d 秒后自动关闭。如果有人在感应门打开的状态下通过,那么冷却时间会重置,重新冷却d秒后再关闭。
在一段时间内,有 n个人陆续通过了感应门,他们通过感应门的时间点分别是t1,t2,⋯,tn,请计算感应门一共开放了多少时间。
【输入描述】
第一行:两个整数n与d,n表示通过感应门的人数,d表示感应门的冷却时间。
第二行:n个整数t1,t2,⋯,tn,每个数字表达一个人通过感应门的时间点。
【输出描述】
单个整数,表示感应门总共开启了多少时间。
【样例输入】
7 3 1 2 7 10 15 17 22
【样例输出】
18
【数据范围】
对于 50% 的数据,1≤n≤1000; 对于 100% 的数据,1≤n≤100,000; 1≤t1≤t2≤t3≤⋯≤tn≤1,000,000,000; 1≤d≤1,000,000,000。