首页 > 其他分享 >A - 摆花【2022GDUT寒假集训-简单DP】

A - 摆花【2022GDUT寒假集训-简单DP】

时间:2023-02-19 00:22:07浏览次数:57  
标签:摆花 const int text 2022GDUT return include DP

摆花

原题链接

思路

\(\text { 有 } n \text { 个数 }\left(c_{1}, c_{2}, \ldots, c_{n}\right) , 0 \leqslant c_{i} \leqslant a_{i} \text {, 求有多少种方案数使 } \sum_{i=1}^{n} c_{i}=m \text { 。 }\)
\(f(i,j)表示前i个数总和为j的方案数\)
\(状态转移方程f(i,j) = \sum_{k=0}^{a_i}f(i-1,j-k)\)

代码

点击查看代码
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<vector>
#include<queue>
using namespace std;

#define X first
#define Y second

typedef pair<int,int> pii;
typedef long long LL;
const char nl = '\n';
const int N = 110;
const int M = 1e6+10;
const int mod = 1e6+7;
int n,m,q;
int a[N],f[N][N];

//记忆化搜索
// int dfs(int x,int k){	//x种物品体积为k的方案数
// 	if(f[x][k])return f[x][k];
// 	if(k > m)return 0;	
// 	if(k == m)return 1;
// 	if(x == n + 1)return 0;	
// 	int ans = 0;
// 	for(int i = 0; i <= a[x]; i ++)ans = (ans + dfs(x+1,k+i))%mod;	
// 	return f[x][k] = ans;;
// }

void solve(){
	cin >> n >> m;
	for(int i = 1; i <= n; i ++ )cin >> a[i];
	f[0][0] = 1;
	for(int i = 1; i <= n; i ++){	//枚举前i种物品
		for(int j = 0; j <= m; j ++){	//枚举总和
			for(int k = 0; k <= min(j,a[i]); k ++){	//枚举每种物品选多少个(不能超过a[i]也不能超过总和)
				f[i][j] = (f[i][j] + f[i-1][j-k])%mod;
			}
		}
	}
	cout << f[n][m] << nl;
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);

	solve();
}

标签:摆花,const,int,text,2022GDUT,return,include,DP
From: https://www.cnblogs.com/J-12045/p/17134043.html

相关文章

  • [oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端
    编码进化回忆上次内容上次回顾了字符编码的新陈代谢ibm曾经的EBCDIC由于字符不连续导致后续出现无数问题随着网络的发展数据交换的需要原来的小隐患现在产生了......
  • [oeasy]python0086_ASCII_出现背景_1963年_DEC_PDP系列主机_VT系列终端
    编码进化回忆上次内容上次回顾了字符编码的新陈代谢ibm曾经的EBCDIC由于字符不连续导致后续出现无数问题随着网络的发展数据交换的需要原来的......
  • 用python绘制1960年到2019年全国GDP增长图
    frompyecharts.chartsimportBar,Timelinefrompyecharts.optionsimport*#处理数据f=open("D:/1960-2019全球GDP数据.csv","r",encoding="GB2312")#读取每一行,返回是......
  • Android 初代 K-V 存储框架 SharedPreferences,旧时代的余晖?
    本文已收录到 AndroidFamily,技术和职场问题,请关注公众号[彭旭锐]提问。前言大家好,我是小彭。SharedPreferences是Android平台上轻量级的K-V存储框架,亦是初代......
  • DP in DP
    其实去年暑假就讲过一次但是当时我没听懂糊弄过去的。我是个傻逼。首先是裸题Heromeetdevil。这种从DFS一步步推到DP感觉非常好理解。就是说我们不必追求DP的......
  • RCNP有关RLDP题目
    第四单元RLDP在RLDP中下面所说正确的是()【选两项】A.使用RLDP的双向链路检测时需要双方都开启该功能B.使用RLDP的单向链路检测时只需一方开启该功能C.使用RLDP的......
  • 给wordpress添加下载按钮
    是不是一直觉得每次写文章,发布下载链接,一串串的网址,或者锚文本都非常不美观。用插件解决,貌似太过小题大做了。显示下载按钮,方法其实很简单,只要把如下代码插入主题目录下的fu......
  • dp??
    Part4动态规划Part4.1线性动态规划题目难度P1216数字三角形普及-CF5CLongestRegularBracketSequence普及-P1020导弹拦截普及/提高-P......
  • DeepMDP: Learning Continuous Latent Space Models for Representation Learning
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Proceedingsofthe36thInternationalConferenceonMachineLearning,LongBeach,California,PMLR97,......
  • dp学习笔记
    目录斜率优化dpH.仓库建设思路代码J.土地购买思路:代码斜率优化dpH.仓库建设思路很容易想暴力,因为只能往后送物资,从后往前计算dp[i]为在i这里建造仓库且i~n都有地可去......