BZOJ 1032 JSOI 2007 초기 Zuma 동적 기획
입력법이 요즘 점점 이상해지고 있어요. 0.0.
우선 우리는 연속적으로 같은 구슬을 모두 움츠려 f[i][j]로 하여금 i부터 시작하는 j개의 구슬의 최소 제거 횟수를 나타낸다
초기값 f[i][1]=cnt[i]=1?2:1
그리고 각 구간에 대해 우리는 중간점을 하나하나 열거하여 둘로 나누어 화해를 구한다
만약 이 구간의 양쪽 점 색깔이 같다면, 우리는 중간을 없애고, 그 다음에 양쪽을 다시 1개 또는 0개를 보충할 수 있다
니마 구슬 색깔은 0... 이것 때문에 한참 동안 WA 참~! @#$%^&*()
그리고 이 문제는 BUG가 있어요. 제 코드는 흩어진 구슬 세 개가 모여있는 건 생각할 수 없지만 AC가 됐어요.
예:
7
1 2 2 1 3 3 1
ans:2
그래서 저는 두 번째 버전을 썼습니다. 구간 양측의 구슬이 모두 단일할 때 구간 내부에서 세 번째 단일한 구슬을 찾았는데 데이터 원인 WA가 떨어졌습니다. 하지만 이 데이터를 통과할 수 있습니다.
공식적으로 데이터를 업데이트해주셨으면 좋겠습니다~ (@^ ^@)~
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define M 510
using namespace std;
int n;
pair<int,int>a[M];
int f[M][M];
int main()
{
int i,j,k,x;
cin>>n;
a[0].first=19980402;
for(i=1,j=0;i<=n;i++)
{
scanf("%d",&x);
if(x!=a[j].first)
a[++j].first=x;
a[j].second++;
}
n=j;
memset(f,0x3f,sizeof f);
for(i=1;i<=n;i++)
f[i][1]=a[i].second==1?2:1;
for(j=2;j<=n;j++)
for(i=1;i+j-1<=n;i++)
{
if(a[i].first==a[i+j-1].first)
f[i][j]=f[i+1][j-2]+(a[i].second+a[i+j-1].second==2?1:0);
for(k=1;k<j;k++)
f[i][j]=min(f[i][j],f[i][k]+f[i+k][j-k]);
}
cout<<f[1][n]<<endl;
}
그 데이터를 넘을 수 있는데 WA에서 떨어진 코드예요.
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define M 510
using namespace std;
int n;
pair<int,int>a[M];
int f[M][M];
int main()
{
int i,j,k,x;
cin>>n;
a[0].first=19980402;
for(i=1,j=0;i<=n;i++)
{
scanf("%d",&x);
if(x!=a[j].first)
a[++j].first=x;
a[j].second++;
}
n=j;
memset(f,0x3f,sizeof f);
for(i=1;i<=n;i++)
f[i][1]=a[i].second==1?2:1;
for(j=2;j<=n;j++)
for(i=1;i+j-1<=n;i++)
{
if(a[i].first==a[i+j-1].first)
{
if(a[i].second+a[i+j-1].second==2)
{
f[i][j]=f[i+1][j-2]+1;
for(k=2;k<j;k++)
if(a[i+k-1].first==a[i].first&&a[i+k-1].second==1)
f[i][j]=min(f[i][j],f[i+1][k-2]+f[i+k][j-k-1]);
}
else
f[i][j]=f[i+1][j-2];
}
for(k=1;k<j;k++)
f[i][j]=min(f[i][j],f[i][k]+f[i+k][j-k]);
}
cout<<f[1][n]<<endl;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
01 가방, 완전 가방, 다중 가방 dp(동적 기획 입문 dp)01 가방은 2진법으로 직접 표시할 수 있지만 데이터 양이 너무 많으면 시간을 초과하는 것이 폭력이다.01 가방의 사상은 바로 이 물품에 대해 내가 넣은 가치가 큰지 안 넣은 가치가 큰지 비교하여 방정식 f[i][v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.