徐老师的羊腿切割机
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
徐老师为了切割羊腿,特意买了一台很大的羊腿切割机!
这台切割机有一个工作台,现在徐老师已经把一堆羊腿放在工作台上了
工作台是个二维平面,但是徐老师会把所有的羊腿放置到与工作台下边缘平行
工作台的两侧边缘上分别标注了坐标点
现在徐老师将 只羊腿放置在了工作台上,第 只羊腿会放在横向第 行上,并且两端刚好对齐工作台的坐标点
例如有 只羊腿,分别对齐的坐标点为:
如下图用 表示羊腿,这里是上述 只羊腿的摆放形状
1 -----
2 -----
3 -------
1 2 3 4 5
每次切割时徐老师会设定一个坐标点 ,切割机将从上往下把所有经过的羊腿全部切开
例如上述例子,设定坐标点 进行切割,显然这次切割对于三个羊腿将会造成:
- 刚好经过 号羊腿的右端点,所以不会切割 号羊腿
- 会将 号羊腿 切割成 两块
- 将 号羊腿 切割成 两块
那么这一次切割后徐老师将拥有 块羊腿
现在徐老师将会进行 次切割,他想获得尽可能多的块数,该如何切割?最多能切出几块羊腿?
P.S. 本题的输入输出使用 会导致超时,请使用 ,并取消同步流,格式如下:
int main(){
freopen("slicing.in", "r", stdin);
freopen("slicing.out", "w", stdout);
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
输入使用 cin
cin >> T;
......
输出使用 cout,换行使用 "\n"
cout << ans << "\n";
}
输入格式
本题采用多组测试数据 第一行一个整数 表示测试数据数量,接下来对于每组测试数据有 第一行包含两个整数 表示羊腿数量和切割次数 接下来 行每行两个整数 表示第 只羊腿的放置位置
输出格式
对于每组测试数据,输出一行形为 Case #A: B 的答案
其中 表示测试数据编号(从 开始), 表示徐老师能获得的最多羊腿块数
数据范围
| 测试点编号 | ||
|---|---|---|
对于所有数据满足:
样例输入
2
3 1
1 3
2 4
1 4
3 3
1 3
2 4
1 4
样例输出
Case #1: 5
Case #2: 7
样例解释
对于第二组测试数据,徐老师可以依次切割坐标 可以获得最多的羊腿数量