【NOI2020 制作菜品】

该博客分析了NOI2020中关于制作菜品的问题,探讨了如何在限定材料和菜品数量下找到合法制作方案。通过数据范围分析,提出递归构造解的方法,并讨论了特殊情况m=n-2的解决方案。最后,博主分享了一个通过bitset优化达到O(n^2k)复杂度的DP解决方案。
摘要由CSDN通过智能技术生成

题意

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=mk。问是否存在一种合法的制作菜品方案?要求输出方案。
n ≤ 500 , m , k ≤ 5000 n\le 500,m,k\le 5000 n500,m,k5000

分析

刚看题的时候被数据范围误到,一直在往网络流和霍尔定理的方向思考。

考虑 m = n − 1 m=n-1 m=n1 的部分分,发现最小且非零的 d i d_i di 一定满足 d i < k d_i<k di<k,且一定存在另一个 d j d_j dj 满足 d i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值