一道二叉树难题,求大佬解
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/2/24 20:44
  • 上次更新2024/2/24 22:37:02
查看原帖
一道二叉树难题,求大佬解
1275897
封禁用户楼主2024/2/24 20:44

A 厂最近举办了一场大型的交易会。交易会上共有 � n 家店铺参与(编号为 1 1 到 � n),当然这些店铺也会参与交易。如果店铺 � a 购买了店铺 � b 的产品,就算生成一桩交易,且每桩交易 � a 都会向 � b 支付 � c 万元。现想问哪家店铺,参与交易总额最大。

交易总额 = 交易总收入 + 交易总支出

请使用邻接表的方法解决这道题目。

输入格式 第一行时输入两个整数: � , � ( 1 ≤ � , � ≤ 1 0 5 ) n,m(1≤n,m≤10 5 ),分别表示参与交易的店铺总数和交易总数。

接下来 � m 行每行三个整数: � , � , � ( 1 ≤ � , � ≤ � ) ( 1 ≤ � ≤ 1 0 5 ) a,b,c(1≤a,b≤n)(1≤c≤10 5 ),表示店铺 � a 向 � b 支付了 � c 万元。

注意:两家店铺可能会多次交易,且没有两家店铺是同一家的情况。

输出格式 输出 1 1 行一个整数结果,表示参与交易总额最大的那所店铺的编号。

如果两家交易总额相同,输出编号更小的。

格式说明 输出时每行末尾的多余空格,不影响答案正确性

输入、输出要求 要求使用「文件输入、输出」的方式解题,输入文件为 business.in,输出文件为 business.out 样例输入 10000 2 1 2 1 2 4 2 样例输出 2

#include <bits/stdc++.h>
using namespace std;
long long val[100010];
int main(){
    freopen("business.in","r",stdin);
    freopen("business.out","w",stdout);
    int n, m;
    cin >>n >> m;
    for(int i=0;i<m; i++){
        int a, b,c;
        cin >> a>> b >>c;
        val[a]+= c;
        val[b]+=c;
    }
    int mx = 1;
    for(int i=2;i<=n; i++){
        if(val[i]>val[mx]){
            mx = i;
        }
    }
    cout << mx;
    return 0;
}

50代码

2024/2/24 20:44
加载中...