[DP] 합창 대형
8963 단어 DP
제목 설명
N명의 학우들이 한 줄로 서 있는데 음악 선생님은 그 중의 (N-K) 학우들을 나와서 나머지 K명의 학우들을 합창 대형으로 만들어야 한다.합창대형은 이런 대형을 가리킨다. K명의 학우를 왼쪽에서 오른쪽으로 순서대로 번호가 1, 2..., K로 설정하면 그들의 키가 각각 T1, T2,..., TK로 설정하면 그들의 키는 T1을 만족시킨다...>TK(1<=i<=K).너의 임무는 모든 N명의 학우들의 키를 알고 있기 때문에 최소한 몇 명의 학우들이 줄을 서서 나머지 학우들을 합창 대형으로 배열할 수 있도록 계산하는 것이다.
입력
입력한 첫 번째 줄은 전체 학우의 총수를 나타내는 정수 N(2<=N<=100)이다.두 번째 줄에는 n개의 정수가 있고 빈칸으로 구분되며 i번째 정수인 Ti(130<=Ti<=230)는 i번째 학생의 키(센티미터)다.
출력
출력은 한 줄을 포함하고 이 줄은 하나의 정수만 포함하며 적어도 몇 명의 학우가 줄을 서야 한다.
샘플 가져오기8
186 186 150 200 160 130 197 220
출력 예제4
사고의 방향
먼저 앞에서 뒤로 a[i]보다 작은 개수를 f[1][]수조, 리와 뒤에서 앞으로 a[i]보다 작은 개수를 f[2][]수조에 저장한 다음에 어떤 사람을 매거하여 그를 중점으로 하고 몇 명을 조정해야 하는지 판단하고 마지막에 어느 사람이 가장 작은지 판단한다.#include
#include
using namespace std;
int n,a[105],f[3][105],ans;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
for(int j=0;j<=i;j++)
if(a[i]>a[j])f[1][i]=max(f[1][i],f[1][j]+1);// a[i]
for(int i=n;i>=1;i--)
for(int j=n+1;j>=i;j--)
if(a[i]>a[j])f[2][i]=max(f[2][i],f[2][j]+1);// a[i]
for(int i=1;i<=n;i++)
ans=max(f[1][i]+f[2][i]-1,ans);// a[i]
printf("%d",n-ans);//
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[BOJ]11048(python)
python 풀이
DP를 이용해 풀이
보통 이런 문제는 dfs나 bfs로 풀이하는 것이여서
고민을 했는데
이 문구 덕분에 DP 를 이용해 풀이할 수 있었다
뒤로 돌아가는 등의 경우를 고려하지 않아도 되기 때문이다
코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.
8
186 186 150 200 160 130 197 220
4
#include
#include
using namespace std;
int n,a[105],f[3][105],ans;
int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
for(int j=0;j<=i;j++)
if(a[i]>a[j])f[1][i]=max(f[1][i],f[1][j]+1);// a[i]
for(int i=n;i>=1;i--)
for(int j=n+1;j>=i;j--)
if(a[i]>a[j])f[2][i]=max(f[2][i],f[2][j]+1);// a[i]
for(int i=1;i<=n;i++)
ans=max(f[1][i]+f[2][i]-1,ans);// a[i]
printf("%d",n-ans);//
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[BOJ]11048(python)python 풀이 DP를 이용해 풀이 보통 이런 문제는 dfs나 bfs로 풀이하는 것이여서 고민을 했는데 이 문구 덕분에 DP 를 이용해 풀이할 수 있었다 뒤로 돌아가는 등의 경우를 고려하지 않아도 되기 때문이다 코...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.