HBC21719德玛西亚万岁,状压dp,动态规划座位预定题解

坐在坟头思考人生 算法基础篇 30 0
想要检验自己的编程水平?来试试全网最全C++题库,让您在挑战中不断进步。
众所周知,ACMore编程协会的团支书ppq是矿里有家的大土豪,每次出去参加比赛都是选择飞机出行,这次他和他的小伙伴出去比赛当然也是选择了飞机出行,在登机之前,都是要对座位进行选择的,选择座位自然不是乱选的,ppq通过查阅了解到大多数人都是按照以下的规则进行选择座位的。

    众所周知,ACMore编程协会的团支书ppq是矿里有家的大土豪,每次出去参加比赛都是选择飞机出行。这次他和他的小伙伴出去比赛当然也是选择了飞机出行(有钱真好,我为什么哭了QAQ)。     在登机之前,都是要对座位进行选择的,选择座位自然不是乱选的。ppq通过查阅了解到大多数人都是按照以下的规则进行选择座位的。     我们假设一架飞机上总共有r+3排的座位,从前往后编号为1~r+3,其中有3排为安全出口通道(分别为第1排,第r/2+2排,第r+3排),所以这3排是无法坐人的。每一排都固定占有11个位置,其中有9个位置是可以坐人的,座位号从左往右为ABC.DEF.GHI(大写字母代表可以坐的座位,‘.’代表这是过道)。     大多数人会以如下的规则进行座位的选择:     1、首先是选择坐在哪一排,如果安全出口通道后面一排(第2排和第r/2+3排)还有空座位,那么就会选择这一排,如果有多种选择的话,他会优先选择空座位较多那一排;如果还是有多种选择的话,他就会选择编号较小的那一排;     2、如果安全出口通道后面一排没有空座位了,他就会选择空座位数量最多的那一排;如果有多种选择的话,他就会选择最靠近安全出口通道的那一排;如果还是有多种选择的话,他会选择编号较小的那一排;     3、选择完排之后就会开始选择座位,乘客首先会根据座位的舒适度从高到低选择座位,座位的舒适度从高到低的排行如下:     (1) 位于飞机中间且靠近过道的座位(即座位D和F)     (2) 位于飞机两侧且靠近过道的座位(即座位C和G)     (3) 位于飞机靠窗位置的座位       (即座位A和I)     (4) 位于飞机中间且在中间的座位  (即座位E)     (5) 位于飞机两侧且在中间的座位   (即座位B和H)     如果按照舒适度选完座位之后仍有多种选择的话,他会选择能平衡飞机重量的位置。如果已选择坐在飞机左侧的人数大于已选择坐在飞机右侧的人数的话,他就会选择坐在飞机右侧,否则他就会选择坐在飞机左侧。(飞机的左侧为第1~5列,右侧为第7~11列)。     了解了这个规则之后,ppq知道他们这次的航班的飞机上总共有r+3排的座位,同时也知道了一部分人选择座位的情况,现在还有n个人(用小写字母表示)要进行选座,这n个人按顺序依次选择座位(即a最先选择座位,依次排下去,直到最后一个人)。好奇的ppq想知道如果这n个人按照根据选择座位的规则进行选择座位的话,最终飞机上的座位情况会是怎么样呢?聪明的ACMer能帮帮ppq吗?

HBC21719德玛西亚万岁,状压dp,动态规划座位预定题解
-第1张图片-东莞河马信息技术
(图片来源网络,侵删)
成为编程大师,不再是梦想!全网最全C++题库,助您开启编程新篇章。

标签: HBC21719德玛西亚万岁 状压dp 动态规划座位预定题解