动态规划2(c++)

酒鬼

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a[10010];
	for(int i = 1;i<=n;i++)
	{
		cin>>a[i];
	}
	int dp[1010][5] = {0};
	dp[0][0] = 0;
	dp[1][0] = 0;
	dp[1][1] = a[1];
	dp[1][2] = 0;
	dp[2][0] = a[1];
	dp[2][1] = a[2];
	dp[2][2] = a[1]+a[2];
	for(int i = 3;i<=n;i++)
	{
		dp[i][0] = max(max(dp[i-1][0],dp[i-1][1]),dp[i-1][2]);
		dp[i][1] = dp[i-1][0]+a[i];
		dp[i][2] = dp[i-1][1]+a[i];
	}
//	for(int i = 1;i<=n;i++)
//	{
//		for(int j = 0;j<=2;j++)
//		{
//			cout<<setw(3)<<dp[i][j];
//		}
//		cout<<endl;
//	}
	cout<<max(max(dp[n][0],dp[n][1]),dp[n][2]);
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int m;
	cin>>m;
	int dp[1010][10] = {0};
	dp[0][0] = 1;
	dp[1][0] = 1;
	dp[1][1] = 1;
	for(int i = 2;i<=n;i++)
	{
		for(int j = 0;j<m;j++)
		{
			dp[i][0] += dp[i-1][j];
		}
		for(int j = 1;j<m;j++)
		{
			dp[i][j] = dp[i-1][j-1];
		}
	}
	long long sum = 0;
	for(int i = 0;i<m;i++)
	{
		sum += dp[n][i];
	}
	cout<<sum;
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int sh[10010];
	int z[10010];
	int y[10010];
	sh[1] = 1;
	z[1] = 1;
	y[1] = 1;
	for(int i = 2;i<=n;i++)
	{
		sh[i] = (sh[i-1]+z[i-1]+y[i-1])%12345;
		z[i] = (z[i-1]+sh[i-1])%12345;
		y[i] = (y[i-1]+sh[i-1])%12345;
	}
	cout<<sh[n]+z[n]+y[n];
	return 0;
}
相关推荐
火山灿火山1 天前
详解AVL树旋转操作实现
数据结构·c++
止水编程 water_proof1 天前
Java--网络编程(二)
java·开发语言·网络
Seeing51 天前
DS题目汇编
c++
2013编程爱好者1 天前
计算时间复杂度
c++·算法·排序算法
润 下1 天前
C语言——深入解析C语言指针:从基础到实践从入门到精通(三)
c语言·开发语言·经验分享·笔记·学习·程序人生·其他
知白守黑2671 天前
docker网络
开发语言·php
细节控菜鸡1 天前
【2025最新】ArcGIS for JS 范围裁剪(只保留特定区域显示),实现精准地理范围聚焦
开发语言·javascript·arcgis
一根甜苦瓜1 天前
Go语言Slice的一道骚题
开发语言·后端·golang
驰羽1 天前
[GO]Go语言泛型详解
开发语言·golang·xcode
NPE~1 天前
[手写系列]Go手写db — — 第五版(实现数据库操作模块)
开发语言·数据库·后端·golang·教程·手写系列·手写数据库