#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;
}