有一堆数量为n的木棍。他们的长度和重量是已知的。这些棍子将以一个接一个的形式被一台木工机床处理。木工机床为处理一根木棍所需要的准备时间称为装配时间。装配时间与机器复位和转换工具及外形有关。装备时间服从以下几条规律:
(a)处理第一根木棒的装配时间是1分钟
(b)正确地处理好一根长度为l重量为w的木棍后,如果机器处理的下一根木棒的长度l'和重量w'符合l<=l'和w<=w'那么处理下一根木棒将不需要装配时间。否则将需要1分钟的装配时间。
你的任务是找出处理一堆木棍所需的最小装配时间。例如,如果你有5根木棍,长度和重量分别为(4,9), (5,2), (2,1), (3,5), 和 (1,4)。那么最小的装配时间将是2分钟,当以这种顺序装配时:(1,4), (3,5), (4,9), (2,1), (5,2)。
要求:
(1)输入:本题一共有T组数据。第一行有一个整数T,代表数据组数。每一组数据由两行组成:第一行包含一个整数n,1<=n<=5000,代表木棍的数量;第二行包含2*n个正整数l1, w1, l2, w2, ..., ln, wn,每个数都不超过10000,代表每根木棍的长度和重量。每两个数之间可能有一个或多个空格。
(2)输出:输出每组数据的最小装配时间。
(3)所设计的数据结构应尽可能节省存储空间。
(4)程序的运行时间应尽可能少。