[POJ1717][luogu1282]Dominoes(도미노 골패)(dp)
2493 단어 dp
제목:
하이퍼링크입니다.
문제 풀이:
은 제목에는 두 가지 제한이 있다. 첫째, 상하차치가 가장 적고 둘째, 조작수가 가장 적으면 디자인 상태 f[i][j] 앞의 i개 골패의 상하차치가 j인 최소 조작수는 가방과 유사하다. 너는 뒤집기/안 뒤집기를 선택할 수 있다. 뒤집으면 +1, 마지막으로 절대치에 따라 값을 얻으면 ok이다.
코드:
#include
#include
#include
#define N 1005
#define INF 1e9
using namespace std;
const int base=5000;
int f[N][N*10],x[N],y[N];
int main()
{
int n,i,j;
scanf("%d",&n);
for (i=1;i<=n;i++) scanf("%d%d",&x[i],&y[i]);
memset(f,0x7f,sizeof(f));
f[0][base]=0;
for (i=1;i<=n;i++)
for (j=-5000;j<=5000;j++)
f[i][j+base]=min(f[i-1][j+x[i]-y[i]+base]+1,f[i-1][j+y[i]-x[i]+base]);
for (i=0;i<=5000;i++)
if (min(f[n][i+5000],f[n][5000-i])printf("%d",min(f[n][i+5000],f[n][5000-i])); return 0;}
}