题意
有 n n n 种材料和 m m m 种菜品,每种菜品需要 k k k 克材料,且同一种菜品只能使用至多两种不同的材料。第 i i i 种材料有 d i d_i di 克,满足 ∑ d i = m ∗ k \sum d_i = m*k ∑di=m∗k。问是否存在一种合法的制作菜品方案?要求输出方案。
n ≤ 500 , m , k ≤ 5000 n\le 500,m,k\le 5000 n≤500,m,k≤5000
分析
刚看题的时候被数据范围误到,一直在往网络流和霍尔定理的方向思考。
考虑 m = n − 1 m=n-1 m=n−1 的部分分,发现最小且非零的 d i d_i di 一定满足 d i < k d_i<k di<k,且一定存在另一个 d j d_j dj 满足 d i