P10544 [THUPC 2024 决赛] 转化
题目描述
有 $n$ 种物品和 $m$ 种转化方式。第 $i$ 种转化方式可以将一个第 $a_i$ 种物品转化成 $k_i$ 个互不相同的物品,其中第 $j$ 个的种类是 $b_{i,j}$。同一种转化方式可以使用任意多次。
你有一些物品。你想知道,对于每一种特定的物品 $d$,你用这些你所拥有的物品可以分别转化出最多多少个该种物品。
输入格式
第一行两个正整数 $n,m$。
第二行 $n$ 个非负整数,其中第 $i$ 个为 $c_i$,表示你拥有的第 $i$ 种物品的数量。
接下来 $m$ 行,其中第 $i$ 行表示第 $i$ 种转化方式。
转化方式的格式为:一行 $k_i+2$ 个正整数,其中第一个为 $a_i$,第二个为 $k_i$,之后为 $k_i$ 个互不相同的正整数 $b_{i,1},b_{i,2},\cdots,b_{i,k_i}$。
保证 $1\le n \le 100$,$1\le m \le 1000$。
保证 $1\le a_i,k_i,b_{i,j} \le n$。
保证 $0\le c_i \le 1000$。
输出格式
输出 $n$ 行,其中第 $d$ 行表示第 $d$ 种物品最多能有多少个。如果可以任意多,即对于任意的 $N$ 都存在一种方案使得有超过 $N$ 个第 $d$ 种物品,输出 `infinity`。
说明/提示
不使用任何转化方式,可以得到一个物品 $1$。
使用一次第一种转化方式,可以把物品 $1$ 变成物品 $2$ 和物品 $4$。这样可以得到一个物品 $2$。
使用一次第二种转化方式,可以把物品 $1$ 变成物品 $3$。这样可以得到一个物品 $3$。
使用一次第一种转化方式,可以把物品 $1$ 变成物品 $2$ 和物品 $4$。然后再使用一次第三种转化方式,可以把物品 $2$ 变成物品 $4$。这样可以得到两个物品 $4$。
可以证明这四种方案分别是当 $d=1,2,3,4$ 时的最优方案。
**来源与致谢**
来自 THUPC2024(2024年清华大学学生程序设计竞赛暨高校邀请赛)决赛。感谢 THUSAA 的提供的题目。
数据、题面、标程、题解等请参阅 THUPC 官方仓库