POJ 1947 - Rebuilding Roads 트리 DP(일반 가방 이동)...
                                            
 2130 단어  Build
                    
업데이트할 때는 두 가지 상황으로 나뉘는데...하나는 이 아이에게서 옮겨야 하는데..가방을 하나하나 만들어서...각 상태의 최소값을 업데이트합니다..아니면 이 아이를 잘라버리든지..그럼 모든 상태를 베기만 하면..
여기 매거진 01팩으로...잎사귀 노드를 얼마나 넣어야 될지 확실하지 않다는 뜻인데...잎 노드가 놓을 크기와 이 노드의 공간이 일일이 업데이트되고 있습니다.이런 콘셉트는 그냥 백팩...본질적으로 01배낭입니다.가방
매거 공간의 순서에 주의하세요.이렇게 하면 업데이트할 때 혼란이 없도록 보장할 수 있는데...
Program:
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<set>
#include<ctime>
#include<algorithm>
#include<queue>
#include<cmath>
#include<map>
#define oo 100000007
#define ll long long
#define pi acos(-1.0)
#define MAXN 155
using namespace std;
vector<int> Tree[MAXN];
int dp[MAXN][MAXN],N,P,ans;
bool root[MAXN];
int dfs(int x)
{
      int i,j,y,m=Tree[x].size(),num=1,t,update;  
      for (i=0;i<=P;i++) dp[x][i]=oo;
      dp[x][1]=0;
      for (i=0;i<m;i++)
      {
             y=Tree[x][i];
             num+=dfs(y); 
             for (t=P;t>=1;t--)
             {
                    update=dp[x][t]+1;
                    for (j=1;j<=t;j++)
                       update=min(update,dp[x][t-j]+dp[y][j]);
                    dp[x][t]=update;
             }  //       
      }
      t=0;
      if (!root[x]) t++;
      if (dp[x][P]!=-1) ans=min(dp[x][P]+t,ans);
      return num;
}
int main()
{
      int i; 
      while (~scanf("%d%d",&N,&P))
      {
            for (i=1;i<=N;i++) Tree[i].clear();
            memset(root,true,sizeof(root));
            for (i=1;i<N;i++)
            {
                   int x,y;
                   scanf("%d%d",&x,&y);
                   Tree[x].push_back(y);
                   root[y]=false;
            }
            for (i=1;i<=N;i++)
               if (root[i]) break;
            ans=oo;
            dfs(i);
            printf("%d
",ans);
      }
      return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Unity에 안드로이드를 구축하고 실행하면 소음에 문제가 생길 수 있습니다다음 이미지는 UnityEditor의 작업 화면입니다. 다음은 안탁실 기구가 건설된 후 집행된 화면이다. 참고로 환경은... Unity5.3.5 Android4.4.2 XperiaZ SO-02E 그렇습니다. 안드로이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.