主题:PASCAL问题求解
1、The Big Game(thegame)
两个球队的支持者要一起坐车去看球,他们已经排成了一列。我们要让他们分乘若干辆巴士,同一辆巴士上的人必须在队伍中是连续的。为了在车上不起冲突,希望两队的支持者人数尽量相等,差至多是D。有一个例外,就是一辆车上的人全部都是一个球队的支持者。问要将这N个人全部送至球场,至少要几辆巴士。
输入:第一行是整数N和D,1<=N<=2500,1<=D<=N。
接下来的N行,按排队的顺序,描述每个人支持的球队,用H或J表示。
输出:至少要几辆巴士。
样例:
输入
14 3
H
J
H
H
H
J
H
J
H
H
H
H
H
H
输出
2
解释
有多种方案,例如让前9人做一辆车,差正好是3;后5人做一辆车,因为只有一对的支持者。
2、Farmer John’s View(fjview)
给出N个角度区间,即两条射线的角度,跨度都小于180度,可能相互重叠。问总共覆盖的角度(秒)。
输入:第一行是整数N,1<=N<=1000。
接下来的N行,每行6个整数,表示区间起始角和终止角的度、分、秒的值。
输出:总共覆盖的秒数。
样例:
输入
3
45 2 59 60 30 30
50 10 2 120 10 0
355 0 0 356 0 0
输出
274021
3、Pesky Parentheses(parens)
给出一个式子,含有N项,1<=N<=10。例如:
1 + 4 - 2 - 1 + 10 - 6
不同的加括号方式可以得到不同的值,求可以得到的最大值。
输入:第一行是N。接下来的N行,每行个整数,绝对值不超过100。正数表示前面的符号为“+”,负数表示前面的符号为“-”。
输出:可以得到的最大值。
样例:
输入
6
1
4
-2
-1
10
-6
输出
20
解释
1 + 4 - (2 - (1 + 10) - 6) = 20
两个球队的支持者要一起坐车去看球,他们已经排成了一列。我们要让他们分乘若干辆巴士,同一辆巴士上的人必须在队伍中是连续的。为了在车上不起冲突,希望两队的支持者人数尽量相等,差至多是D。有一个例外,就是一辆车上的人全部都是一个球队的支持者。问要将这N个人全部送至球场,至少要几辆巴士。
输入:第一行是整数N和D,1<=N<=2500,1<=D<=N。
接下来的N行,按排队的顺序,描述每个人支持的球队,用H或J表示。
输出:至少要几辆巴士。
样例:
输入
14 3
H
J
H
H
H
J
H
J
H
H
H
H
H
H
输出
2
解释
有多种方案,例如让前9人做一辆车,差正好是3;后5人做一辆车,因为只有一对的支持者。
2、Farmer John’s View(fjview)
给出N个角度区间,即两条射线的角度,跨度都小于180度,可能相互重叠。问总共覆盖的角度(秒)。
输入:第一行是整数N,1<=N<=1000。
接下来的N行,每行6个整数,表示区间起始角和终止角的度、分、秒的值。
输出:总共覆盖的秒数。
样例:
输入
3
45 2 59 60 30 30
50 10 2 120 10 0
355 0 0 356 0 0
输出
274021
3、Pesky Parentheses(parens)
给出一个式子,含有N项,1<=N<=10。例如:
1 + 4 - 2 - 1 + 10 - 6
不同的加括号方式可以得到不同的值,求可以得到的最大值。
输入:第一行是N。接下来的N行,每行个整数,绝对值不超过100。正数表示前面的符号为“+”,负数表示前面的符号为“-”。
输出:可以得到的最大值。
样例:
输入
6
1
4
-2
-1
10
-6
输出
20
解释
1 + 4 - (2 - (1 + 10) - 6) = 20