切换到宽版
  • 5657阅读
  • 0回复

大家快来啊。。。一题动规。。 [复制链接]

上一主题 下一主题
离线_icsytc_
 
只看楼主 倒序阅读 0 发表于: 2011-07-14
Multisort
问题描述
    HarryPotter大学毕业后来到了国防部工作。但不幸的是当他工作的
第一天,外星人大举入侵地球。HarryPotter被临时调到情报分析部门执
行任务。他得到的第一个任务就是对外星人部队的作战能力按从大到小排
序。HarryPotter将得到两份情报,一份是外星人每支部队的攻击力,另
一份是这些部队的防御力。当HarryPotter把这些部队按攻击力和防御力
分别排好序后,发现有些部队之间是无法比较的,比如两支部队一个攻击
力强一些,另一个防御力强一些。HarryPotter将这个信息汇报给了上级,
经过一系列商议后上级决定:将所有的部队分为尽可能少的m组,使每组
内的任意两支部队的作战能力均可以比较,然后再对每组的部队进行排序。
(部队A与部队B的作战能力可以比较的充要条件是A的攻击力和防御力均
大于B或均小于B)
    这下HarryPotter可犯难了,他只知道如何对攻击力或防御力进行排
序,但是两者接合到一起就不知如何是好了。请你帮助HarryPotter完成
他的任务。
输入格式
    从文件a.in 第一行读入n。其中n表示外星人部队的数目。
    以下有n行,每行有两个正整数Xi,Yi。表示第i支部队的攻击力排在
第Xi位,防御力排在第Yi位。(若i<>j,则Xi<>Xj且Yi<>Yj。其中0<Xi,Yi<=n)
    规模:0<n<=100000
输出格式
    结果输出到文件a.out。
    文件第一行有一个正整数m。表示给这n支部队排序最少要分成m组。
    以下n行每行有两个正整数k,s。其中第i行表示第i支部队被分在第k
组,并且排在第s位。
输入样例1
2
1 2
2 1
输出样例1
2
1 1
2 1
输入样例2
5
3 5
5 4
2 1
4 2
1 3
输出样例2
2
1 2
2 3
2 1
2 2
1 1



有什么不超时的算法啊。。。大家救我下哈。。。
快速回复
限100 字节
 
上一个 下一个