HDU 1024 Max Sum Plus Plus DP
1281 단어 HDU
먼저 생각한 것은 하나의 2차원 그룹으로 DP를 진행하는 것이다. 2차원 그룹으로 몇 조를 기록하는 데 사용하고 다른 하나는 각 그룹의 최대 상황을 기록하는 데 사용한다. 구체적으로 어떻게 최대와 1003을 기록하면 똑같다. 그리고 n의 값이 비교적 크기 때문에 2차원으로 폭발할 것이다. 그래서 여기서 두 개의 그룹을 열어 2차원 그룹의 이 과정을 모의하고 DP를 진행한다. 아래 코드는
#include
#include
#include
#include
#include
using namespace std;
int dp[1000005];
int dm[1000005];
int a[1000005];
int max(int a,int b)
{
return a>b?a:b;
}
int main()
{
int n,m;
int i,j,t;
while(scanf("%d%d",&m,&n)!=EOF)
{
memset(dp,0,sizeof(dp));
memset(dm,0,sizeof(dm));
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
for(i=1;i<=m;i++)
{
t=INT_MIN;
for(j=i;j<=n;j++)
{
dp[j]=max(dp[j-1]+a[j],dm[j-1]+a[j]);
dm[j-1]=t;
t=max(t,dp[j]);
}
}
cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
hdu4671(다교리그 7--수 시뮬레이션)클릭하여 링크 열기 제목: n과 서버, m개의 데이터베이스가 있고 모든 데이터베이스는 서버를 연결해야 하지만 모든 데이터베이스는 서버를 연결하는 우선순위가 있습니다.모든 데이터베이스의 서버 우선순위를 구하다.또한 한...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.