RYIP在线题库
首 页   >   习题练习   >   提交
Problem1719--移动箱子

1719: 移动箱子

[Creator : ]
Time Limit : 4.000 sec  Memory Limit : 256 MB

【 Description 】

有n列箱子,其中有些是宝箱、其他是空箱。每一秒钟你可以选择以下操作执行:
  1. 将第i列最上面的一个箱子移动到第j列的最上面;
  2. 如果第i列最上面的一个箱子是宝箱,将其打开取出宝物,之后这个箱子消失;
你也可以理解成 n个栈,每次操作移动某个栈顶元素、或者删除某个位于栈顶的宝箱。
请问如果想打开所有宝箱,最少需要的操作次数。
【保证 n > 1】

【 Input 】

第一行输入一个整数T,表示有T组数据。
每组数据第一行输入一个整数 n,表示栈的数量(保证 n > 1)。
接下来n行,首先两个整数代表栈的高度h,和这个栈中宝箱的数量m,接下来m个整数给出每个宝箱在栈中的高度(保证升序),栈底高度=1,栈顶高度=size。

【 Output 】

对于每组数据,输出一个整数表示答案。

【 Sample Input 】

1
3
3 1 1
2 1 1
5 2 2 4

【 Sample Output 】

10

【HINT】

对于 100\%100% 的数据,保证 1\le T\le 5, 1 < n\le 10^5, 0\le h\le 10^9, \sum{m}\le5\times 10^51T5,1<n105,0h109,m5×105

测试点 nn hh
1-313 \le1010 \le100100
4-545 \le2020 \le100100
5-757 \le10001000 \le10001000
8-10810 \le10^5105


【 Source/Category 】