博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
URAL 1244 Gentlemen
阅读量:5958 次
发布时间:2019-06-19

本文共 725 字,大约阅读时间需要 2 分钟。

思路:dp,有点类似背包,不过不需要求最大价值,只要求方案数就可以了。

状态:dp[i]表示和为i的方案数

初始状态:dp[0]=1

状态转移:dp[i]=∑dp[i-a[k]] (1<=k<=n)

用一个pre[]数组来记录路径

代码:

#include
using namespace std;#define ll long long#define pb push_back#define mem(a,b) memset(a,b,sizeof(a))const int N=1e5+5;int dp[N];int pre[N];int a[N];bool vis[N];vector
ans;int main(){ ios::sync_with_stdio(false); cin.tie(0); int m,n; cin>>m; cin>>n; for(int i=1;i<=n;i++)cin>>a[i]; if(m>1e5){ cout<<0<
=a[i];j--){ if(dp[j-a[i]]){ dp[j]+=dp[j-a[i]]; if(pre[j]==-1)pre[j]=i; } } } if(dp[m]==0)cout<<0<

 

转载于:https://www.cnblogs.com/widsom/p/8378652.html

你可能感兴趣的文章
python之UnittTest模块
查看>>
HDOJ_ACM_Rescue
查看>>
笔记纪录
查看>>
九、oracle 事务
查看>>
Git - 操作指南
查看>>
正则表达式的贪婪与非贪婪模式
查看>>
SqlServer存储过程调用接口
查看>>
DOM
查看>>
通过jQuery.support看javascript中的兼容性问题
查看>>
NYOJ-取石子
查看>>
AngularJS
查看>>
《zw版·Halcon-delphi系列原创教程》halconxlib控件列表
查看>>
List与数组的相互转换
查看>>
Computer Science Theory for the Information Age-4: 一些机器学习算法的简介
查看>>
socketserver模块使用方法
查看>>
json模块
查看>>
各型号英特尔CUP的功率
查看>>
scanf()中的%c 不能正常输入的问题
查看>>
encodeURIcomponent编码和ASP.NET之间编码转换
查看>>
实验三 区域四连通填充算法
查看>>