UVA 674 Coin Change 硬币转换(完全背包,常规)
2024-08-23 15:22:38
题意:有5种硬币,个数无限的,组成n元的不同方案有多少种?
思路:常规完全背包。重点在dp[0]=1,dp[j]中记录的是组成 j 元的方案数。状态转移方程dp[j+coin[i]]+=dp[j]。
#include <bits/stdc++.h>
using namespace std;
int coin[]={, , , , };
int dp[], n; int cal()
{
if(!n) return ;
memset(dp,,sizeof(dp));
dp[]=;
for(int i=; i<; i++)
for(int j=; j+coin[i]<=n; j++)
dp[j+coin[i]]+=dp[j];
return dp[n];
}
int main() {
//freopen("input.txt", "r", stdin);
while(~scanf("%d",&n))
printf("%d\n",cal()); return ;
}
AC代码
最新文章
- C# 泛型
- Volley框架使用笔记
- MySQL 启动服务报错解决方案
- thread.join 从异步执行变成同步
- codeforces 742E (二分图着色)
- 5.linux内核模块基础,内核模块学习
- psutil 是因为该包能提升 memory_profiler 的性能
- Python开发入门与实战1-开发环境
- Add 1G to a LVM on VMware
- python 实战
- oracle中简单查询语句的格式及执行顺序分析
- 解决Sqlite UTF-8中文数据格式在DOS窗口下中文乱码
- C#的线程池的那些事
- Struts2结合Ajax实现登录
- 查看主机DNSserver
- OpenCV3.1.0中调用MHI(Motion History Images, 运动历史图像)
- 用scrapy框架爬取映客直播用户头像
- thunderbird中如何设置QQ邮箱
- [笔记] linux中的计划任务crontab
- 43、ThreadPool 、WaitHandle、原子操作InterLocked