2 条题解
-
0
P1164 小 A 点菜——题解
解题思路
令
f[j]表示已处理菜品中总价恰好为 的方案数,初始f[0]=1。每道菜从大到小更新金额:f[j]+=f[j-price]。倒序确保每份菜最多选择一次。复杂度分析
时间复杂度 ,空间复杂度 。
C++17 参考代码
#include <bits/stdc++.h> using namespace std; long long f[10005]; int main(){ int n,m;cin>>n>>m;f[0]=1; for(int i=0;i<n;i++){int x;cin>>x;for(int j=m;j>=x;j--)f[j]+=f[j-x];} cout<<f[m]<<'\n';return 0; }
- 1
信息
- ID
- 4924
- 时间
- 4000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
粤公网安备44195502000195号