动态规划 练习(c++)

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int n;
int a[1010];
int dp[1010];
int ldp;
int main()
{
	cin>>n;
	for(int i = 1;i<=n;i++)
	{
		cin>>a[i];
	}
	for(int i = 1;i<=n;i++)
	{
		bool f = false;
		for(int j = 1;j<=ldp;j++)
		{
			if(dp[j]<a[i])
			{
				dp[j] = a[i];
				f = true;
				break;
			}
		}
		if(f==false)
		{
			dp[++ldp] = a[i];
		}
	}
	cout<<ldp;
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int n;
int a[1010];
int dp[1010];
int ldp;
int main()
{
	cin>>n;
	for(int i = 1;i<=n;i++)
	{
		cin>>a[i];
	}
	dp[1] = a[1];
	dp[2] = max(a[1],a[2]);
	for(int i = 3;i<=n;i++)
	{
		dp[i] = max(max(dp[i-2]+a[i],dp[i-2]),dp[i-1]);
	}
	cout<<dp[n];
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int n;
int a[100010];
int dp[100010];
int main()
{
	cin>>n;
	long long A,B,C;
	cin>>A>>B>>C;
	for(int i = 1;i<=n;i++)
	{
		a[i] = (A*i*i+B*i+C)%20000-10000;
	}
	dp[0] = 0;
	dp[1] = a[1];
	for(int i = 2;i<=n;i++)
	{
		dp[i] = max(max(dp[i-1]+a[i],dp[i-2]+a[i]),dp[i-1]);
	}
	cout<<dp[n];
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int n;
int a[100010];
int dp[100010];
int x;
ll sum;
int main()
{
	cin>>n>>x;
	a[1] = x;
	for(int i = 2;i<=n;i++)
	{
		a[i] = (379*a[i-1]+131)%997;
	}
	dp[1] = a[1];
	sum += dp[1];
	for(int i = 2;i<=n;i++)
	{
		dp[i] = max(a[i],dp[i-1]);
		sum += dp[i];
	}
	cout<<sum;
	return 0;
}
cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
int n;
int a[100010];
int dp[100010];
int main()
{
	cin>>n;
	long long A,B,C;
	cin>>A>>B>>C;
	for(int i = 1;i<=n;i++)
	{
		a[i] = (A*i*i+B*i+C)%20000-10000;
	}
	dp[0] = 0;
	dp[1] = a[1];
	for(int i = 2;i<=n;i++)
	{
		dp[i] = min(min(dp[i-1]+a[i],dp[i-2]+a[i]),dp[i-1]);
	}
	cout<<dp[n];
	return 0;
}
相关推荐
Swift社区4 小时前
LeetCode 432 - 全 O(1) 的数据结构
数据结构·算法·leetcode
逝玄4 小时前
关于图灵停机问题不可判定性证明
算法·计算机科学
低客的黑调4 小时前
为你的项目选择一个适合的[垃圾收集器]
java·jvm·算法
芬加达4 小时前
leetcode34
java·数据结构·算法
资深web全栈开发4 小时前
LeetCode 1015. 可被 K 整除的最小整数 - 数学推导与鸽巢原理
算法·leetcode·职场和发展
dragoooon345 小时前
[优选算法专题八.分治-归并 ——NO.46~48 归并排序 、数组中的逆序对、计算右侧小于当前元素的个数]
数据结构·算法·排序算法·分治
CoderYanger5 小时前
优选算法-队列+宽搜(BFS):72.二叉树的最大宽度
java·开发语言·算法·leetcode·职场和发展·宽度优先·1024程序员节
招摇的一半月亮5 小时前
P2242 公路维修问题
数据结构·c++·算法
星轨初途5 小时前
数据结构排序算法详解(5)——非比较函数:计数排序(鸽巢原理)及排序算法复杂度和稳定性分析
c语言·开发语言·数据结构·经验分享·笔记·算法·排序算法