站外题,wa 0pt
  • 板块题目总版
  • 楼主ivyjiao
  • 当前回复11
  • 已保存回复11
  • 发布时间2022/10/6 19:03
  • 上次更新2023/10/27 08:26:47
查看原帖
站外题,wa 0pt
578029
ivyjiao楼主2022/10/6 19:03

题目

两个样例均输出 22

#include<iostream>
#include<cstdio>
using namespace std;
int n,m,re,x,v;
struct tree{
    int l,r,sum;
}a[100001];
int main(){
    freopen("end.in","r",stdin);
    freopen("end.out","w",stdout);
    cin>>n>>m;
    re=m;
    for(int i=1;i<=n;i++) cin>>a[i].l>>a[i].r;
    for(int i=1;i<=m;i++) cin>>x>>v,a[x].sum=v;
    for(int i=1;re>1;i++){
        for(int j=1;j<=n;j++){
            if(j==1){
                if(a[a[1].l].sum) a[1].sum=max(a[1].sum,a[a[1].l].sum)-min(a[1].sum,a[a[1].l].sum),re--;
                if(a[a[1].r].sum) a[1].sum=max(a[1].sum,a[a[1].r].sum)-min(a[1].sum,a[a[1].r].sum),re--;
            }
            a[j].sum=max(a[a[j].l].sum,a[a[j].r].sum)-min(a[a[j].l].sum,a[a[j].r].sum);
            if(a[a[j].l].sum&&a[a[j].r].sum){
                re--;
                if(a[a[j].l].sum==a[a[j].r].sum) re--;
            }
        }
    }
    cout<<a[1].sum;
}
2022/10/6 19:03
加载中...