zoukankan      html  css  js  c++  java
  • D Bulbasaur

     牛客网暑期ACM多校训练营(第六场)  D  Bulbasaur

    题目:

    链接:https://www.nowcoder.com/acm/contest/144/D
    来源:牛客网

    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 262144K,其他语言524288K
    64bit IO Format: %lld
    题目描述
    Silph company deployed a passenger flow analysis system in a clothing store that captures photos of human faces and photos of human bodies in real time.

    In order to analyze the passenger flow better, the system will associate human faces with human bodies. In other words, there are some edges connecting faces with bodies. Each edge has a positive weight.

    However, due to lack of precision and accuracy of the algorithms provided by this company, these associations may not be completely correct.

    In a correct relationship, one human face can associate with multiple human bodies (one person may change multiple suits of clothes), but one human body cannot associate with multiple human faces.

    Now Bulbasaur works as an intern at Silph company and the boss asks him to solve this problem.

    Bulbasaur is supposed to find an association relationship, such that the sum of weights of the association edges is maximum.
    输入描述:
    The input starts with one line containing exactly one integer T, which is the number of test cases.

    For each test case, the first line contains three integers n, m and k, indicating the number of face photos, the number of body photos, and the number of existing association edges, respectively.

    Then followed by k lines, each consists of three integers ai, bi and ci, representing an edge weighted ci connecting the ai-th face photo with the bi-th body photo.

    - 1 ≤ T ≤ 5.
    - 1 ≤ n, m, k ≤105.
    - 1 ≤ ai ≤ n.
    - 1 ≤ bi ≤ m.
    - 1 ≤ ci ≤ 109.
    - .
    输出描述:
    For each test case, output one line containing "Case #x: y", where x is the test case number (starting from 1) and y is the maximum sum of weights of the association edges.
    示例1
    输入
    复制
    1
    2 3 3
    1 2 1919
    1 3 810
    2 2 450
    输出
    复制
    Case #1: 2729

    思路: 

      贪心,对于每个身体配对权值最大的脸即可,然后累加所有身体的权值即可。

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    const int maxn = 1e6;
    int a[maxn];
    int main()
    {
        int t;
        scanf("%d",&t);
        for(int cas=1;cas<=t;cas++){
            int n,m,k;
            scanf("%d%d%d",&n,&m,&k);
            memset(a,0,sizeof(a));
            for(int i=1;i<=k;i++){
                int u,v,w;
                scanf("%d%d%d",&u,&v,&w);
                a[v]=max(a[v],w);
            }
    
            long long ans =0;
            for(int i=1;i<=m;i++){
                ans += (long long )a[i];
            }
    
            printf("Case #%d: %lld
    ",cas,ans);
    
        }
    
        return 0;
    }
  • 相关阅读:
    PHP+MYSQL单例模式的滑铁卢
    碰到一个安装SQl2008 Express Edition出错的怪异情况
    用虚拟并口解决向USB条码打印机发送ZPL指令的解决方案
    让excanvas支持动态创建的canvas标签(附演示文件)
    sql 检索语句
    c++ string 类基本用法样例
    Sqlite c/c++ api 学习
    最常见的20种VC++编译错误信息
    C#动态调用C++编写的DLL函数
    C++中将BYTE转16进制字符串
  • 原文地址:https://www.cnblogs.com/longl/p/9424807.html
Copyright © 2011-2022 走看看