막대기자르기.zip
0.00MB

 

[ 솔루션 ]

 

 

[ 참고 소스 코드 ]

더보기
#include <iostream>
using namespace std;

int main()
{
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w",stdout);
	
	int d[52][52]= {0, };
	int cut[52];
	int len, n, i, j, k;
	
	cin >> len;
	cin >> n;
	
	for(i=1;i<=n;i++)
		cin >> cut[i];
		
	cut[0] = 0;
	cut[n+1] = len;
	
	for(j=0;j<=n;j++)
		d[j][j+1] = 0;
		
	
	for(i=2;i<=n+1;i++)
	{
		for(j=0;j<=n-i+1;j++)
		{
			d[j][j+i] = 0x7fffffff;
			for(k=j+1;k<j+i;k++)
			{
				if(d[j][k] + d[k][j+i] + cut[j+i] - cut[j] < d[j][j+i])
					d[j][j+i] = d[j][k] + d[k][j+i] + cut[j+i] - cut[j];
			}
		}
	}
	
	cout << d[0][n+1];
}

'25년 경시대회 준비' 카테고리의 다른 글

[ 문제 ] 건초 고르기  (0) 2025.04.08
[ 문제 ] 주간 수당  (0) 2025.04.08
[ 문제 ] 와일드 카드  (0) 2025.04.08
[ 문제 ] 두더지 게임  (0) 2025.04.07
[ 문제 ] 사과 받기  (0) 2025.04.04
Posted by 명문코딩컴퓨터
,