萌新求助动态规划
  • 板块题目总版
  • 楼主KMSK
  • 当前回复3
  • 已保存回复3
  • 发布时间2021/12/12 20:08
  • 上次更新2023/11/3 22:19:55
查看原帖
萌新求助动态规划
472423
KMSK楼主2021/12/12 20:08

题目传送门:摆花

普通dp,全WA,哪里出了问题呀,萌新不解。

代码如下:

//全WA 
#include<iostream>
using namespace std;
int n,m;
int dp[105][105];//当前编号,已经摆好的花的数量 ,存储有多少种情况 
int a[105];
long long ans;
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	cin>>a[i];
	//初始化
	 dp[0][0]=1;//初始化,什么也不摆放 ,这种初态只有一种 
	for(int i=1;i<=n;i++)//当前编号 
	{
		for(int k=0;k<i;k++)//前面的所有编号,用于获取之前的状态进行转移 
		{
			for(int j=0;j<=m;j++)//枚举摆花的数量 
			{
				//当前放多少盆
				for(int t=0;t<=a[i];t++)//题目限制最多摆a[i]盆 
				{
					if(j-t>=0)dp[i][j]+=dp[k][j-t];
				 } 
			}
		}
	 } 
	 for(int i=1;i<=n;i++)
	 ans+=dp[i][m];
	 cout<<ans<<endl;
	return 0;
 }  
2021/12/12 20:08
加载中...