这题主要是比较麻烦,要考虑的比较全面。题目大意是:有一栋楼,楼有10层,每层有10个房间,层与层之间用电梯连接,电梯每五秒搭载一个人。有序号为A到Z的26个人可能要来访问这栋楼,每个人可以访问一个或多个房间,并以房间号的升序对房间进行访问。然而每个房间里同一时刻只能有一个人,若有多个人要访问同一房间,则以字母升序的优先级进行访问,编号为A的人有最高的优先级,Z的优先级最低。不能立即访问房间的人在房间门前以字母升序优先级排成队列进行等待。对于电梯的使用也是一样的按字母优先级。
我的思路是以优先级降序的顺序对每个人进行处理:先对最高优先级的人要访问的每个房间进行处理,若有别人也要访问这个房间,则先处理这几个人的对该房间的访问,这中间使用迭代。每个人、每个房间和每个电梯都有一个当前时间,当前状态。考虑好这些,这题应该就不难了。
附上原题地址:
http://poj.org/problem?id=1025