n 项实验两两可区分,因此不同排列视为不同方案。一项实验不可拆分,合法方案等价于:存在某个前缀,其耗时之和恰好为 60(后面自然合计 120)。耗时均为正整数时前缀和严格递增,这样的前缀至多一个。
若输入不合法(项数不在 [1,20]、存在非正耗时、或总和不是 180),答案为 0。
n≤20,可以用 2n 枚举休息前要完成的实验集合 S:
实验室要在 180 分钟内做完 n 项两两可区分的实验。第 i 项耗时 mi 分钟,且必须连续做完,中途不能插入其他实验或休息。全部实验的耗时之和必须恰好为 180。
安排顺序时,必须先连续做满恰好 60 分钟,然后休息,再把剩余实验做完(剩余合计 120 分钟)。也就是说,存在某个前缀,其耗时之和恰好为 60。
请计算有多少种实验排列满足上述分界条件。若输入不合法(例如耗时之和不是 180)或没有任何合法排列,答案为 0。
约束:n 为正整数且不超过 20,mi 为正整数。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.