欢迎使用本站,预祝练习时长两年半的选手们到成功! [本模块信息来自tem/def/head]

1338:医院设置

时间:2024-05-05 11:28 作者:admin 点击:
#include iostream#include cstringusing namespace std;struct node{ int id; int n; int t,l,r;} poi[105];int n;int vis[105],ans=2147483647;int getsum(int i,int h){ if(i==0||vis[i]==1) return 0; vis[i]=1; int sum=0; sum+=getsum(poi[i].t,h+1); s
#include <iostream>
#include <cstring>
using namespace std;
struct node{
    int id;    
    int n;    
    int t,l,r;
} poi[105];
int n;
int vis[105],ans=2147483647;
int getsum(int i,int h){
    if(i==0||vis[i]==1) return 0;    
    vis[i]=1;    
    int sum=0;    
    sum+=getsum(poi[i].t,h+1);    
    sum+=getsum(poi[i].l,h+1);    
    sum+=getsum(poi[i].r,h+1);    
    return poi[i].n*h+sum;
}
int main() {
    cin>>n;    
    for(int i=1;i<=n;i++){    
        cin>>poi[i].n>>poi[i].l>>poi[i].r;        
        poi[i].id=i;        
        poi[poi[i].l].t=i;        
        poi[poi[i].r].t=i;    
    }    
    for(int i=1;i<=n;i++){    
        memset(vis,0,sizeof(vis));        
        ans=min(ans,getsum(i,0));    
    }    
    cout<<ans;    
    return 0;
}


(责任编辑:admin)
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%