UVALive 7505 Hungry Game of Ants
老实说,这题我在现场赛大概写不出来。 感觉还是比较需要脑洞。 题意: 一排不同重量的蚂蚁按重量排成一排玩饥饿游戏,每只蚂蚁最开始选择一个方向,左或者右,大蚂蚁吃小蚂蚁,并且使自己增加小蚂蚁的重量,如果重量相同,左吃右。 问 n 只蚂蚁,第 k 只活到最后的方案数。 思路: 直接切入正解。 首先第k只蚂蚁必须选择左边,不然只能被吃。( $n \neq k $ ) 如果想要第 k 只蚂蚁获胜,必须满足以下两个条件 1. $ weight[ max(p_1), k ] > weight[ 0, max(p_1) ) $ 2. $ weight[ 1, min(p_2) ] <= weight( min(p_2), n…