//
//  main.c
//  Bonus2
//
//  Created by 余南龙 on 2016/11/27.
//  Copyright © 2016年 余南龙. All rights reserved.
//
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 200000
#define Infinity 10000000

struct Edge{
    int u;
    int v;
    int weight;
    int status;
};

int comp(const void *a, const void *b){
    struct Edge *pa = (struct Edge*)a;
    struct Edge *pb = (struct Edge*)b;

    if(pa->status != pb->status){
        return pb->status - pa->status;
    }
    return pa->weight - pb->weight;
}

int main() {
    struct Edge E[MAX];
    , connect, index, fu, fv, tmp, flag = , cost[MAX], UF[MAX];

    scanf("%d%d", &N, &M);
    ; i < M; i++){
        scanf("%d%d%d%d", &E[i].u, &E[i].v, &E[i].weight, &E[i].status);
    }
    qsort(E, M, ]), comp);
    memset(cost, , ));

    ; i <= N; i++){
        connect = ;
        memset(UF, -, ));
        ; j < M; j++){
            if(E[j].u != i&&E[j].v != i){
                index = fu = E[j].u;
                ){
                    fu = UF[fu];
                }
                while(index != fu){
                    tmp = UF[index];
                    UF[index] = fu;
                    index = tmp;
                }

                index = fv = E[j].v;
                ){
                    fv = UF[fv];
                }
                while(index != fv){
                    tmp = UF[index];
                    UF[index] = fv;
                    index = tmp;
                }

                if(fu != fv){
                    if(fu <= fv){
                        UF[fu] += UF[fv];
                        UF[fv] = fu;
                    }
                    else{
                        UF[fv] += UF[fu];
                        UF[fu] = fv;
                    }

                    connect++;
                     == E[j].status){
                        cost[i] += E[j].weight;
                    }
                    )
                        break;
                }
            }
        }
        ){
            cost[i] = Infinity;
        }
        if(cost[i] > max){
            max = cost[i];
        }
    }

     != max){
        ; i <= N; i++){
            if(max == cost[i]){
                 == flag){
                    printf("%d", i);
                    flag = ;
                }
                else{
                    printf(" %d", i);
                }
            }
        }
    }
    else{
        printf(");
    }
}

PTA week10的更多相关文章

  1. week10《java程序设计》作业总结

    week10<java程序设计>作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常相关内容. 答:: 2. 书面作业 本次PTA作业题集异常 1. 常用异常 ...

  2. 小课堂Week10 例外处理设计的逆袭Part3

    小课堂Week10 例外处理设计的逆袭Part3 今天是<例外处理设计的逆袭>这本书阅读的第三天,也是最后一天,我们会主要通过实例,对Part2中提出的例外处理等级进行解读. Level1 ...

  3. 浙大PTA - - 堆中的路径

    题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21731 本题即考察最小堆的基本操作: #include "iostrea ...

  4. 浙大PTA - - File Transfer

    题目链接:https://pta.patest.cn/pta/test/1342/exam/4/question/21732 #include "iostream" #includ ...

  5. ERROR<53761> - Plugins - conn=-1 op=-1 msgId=-1 - Connection Bind through PTA failed (91). Retrying...

    LDAP6.3在DSCC控制台启动实例完成,但是操作状态显示“意外错误”,查看日志如下: 04/May/2016:21:10:39 +0800] - Sun-Java(tm)-System-Direc ...

  6. PTA中提交Java程序的一些套路

    201708新版改版说明 PTA与2017年8月已升级成新版,域名改为https://pintia.cn/,官方建议使用Firefox与Chrome浏览器. 旧版 PTA 用户首次在新版系统登录时,请 ...

  7. PTA分享码-Java

    主要用于Java语法练习,非竞赛类题目.   1. Java入门          959dbf0b7729daa61d379ec95fb8ddb0   2. Java基本语法   23bd8870e ...

  8. C语言第一次实验报告————PTA实验1.2.3内容

    一.PTA实验作业 题目1.温度转换 本题要求编写程序,计算华氏温度100°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代 ...

  9. PTA题---求两个有序序列中位数所体现的思想。

    ---恢复内容开始--- 近日,在做PTA题目时,遇到了一个这样的题,困扰了很久.题目如下:已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数.有序序列A​0​​,A​1​​, ...

随机推荐

  1. 解决Selenium Webdriver执行测试时,每个测试方法都打开一个浏览器窗口的问题

    虽然把WebDriver定义为一个静态变量了,但是每次执行测试都要打开多个窗口,挺浪费时间的. 找了很多中方法,比如使用setUpClass, BeforeSuite都没有完全解决问题.后来无意间发现 ...

  2. testNG设置测试的执行顺序

    在java类中,设置Test的执行顺序可以使用priority,或者enabled等属性.但是在testng.xml中,需要设置它的 preserve-order="true" 另 ...

  3. 在线程中用 OracleBulkCopy 导至 CPU 百分百

    抓取到的数据, 要批量写数据到 ORACLE , 一开始是用的EF, 处理速度很慢. 主要表现在验证数据上(db.GetValidationErrors), 每分钟才能写 1000条不到. 换成 En ...

  4. 【python】删除1~100的素数

    def delPrime(x): if x==1: return True for y in range(2,x): if x%y==0: return True return False x1=ra ...

  5. Unity3D外包团队——技术分享U3D全景漫游(三)

    22.给每个物体都附上贴图,如果是纯色物体,也付给纯色贴图 23.打光后,选择要烘培的物体 设置输出路径 添加烘培输出的贴图类型 添加“LightingMap”类型 设置烘培贴图大小和目标贴图位置为“ ...

  6. chrome常用配置

    插件类: Gestures for Google Chrome 增加鼠标手势 安装后需重启 JSONView 自动格式化页面输出的json数据

  7. mpstat, pidstat, iostat和sar

    在我们上一篇文章中,我们已经学习了如何去安装和更新sysstat,并且了解了包中的一些实用工具. 今天,我们将会通过一些有趣的实例来学习mpstat, pidstat, iostat和sar等工具,这 ...

  8. activiti自定义流程之整合(七):完成我的申请任务

    在上一篇的获得我的申请中,可以看到js代码中还包含了预览和完成任务的代码,既然上一篇已经罗列了相关代码,这里也就不重复. 那么需要补充的是,在上边的完成任务的js代码中,我们还调用了getTaskFo ...

  9. 根据ip判断地区,IP接口

    大型网站提供的IP API接口调用方法 [淘宝]的IP地址查询接口:http://ip.taobao.com/service/getIpInfo.php?ip=218.192.3.42[新浪]的IP地 ...

  10. Eclipse插件SVN配置

    Eclipse插件SVN配置 方法一 打开Eclipse点击[Help]-[Install New Software] 点击右边[Add]-在弹出窗口中输入 Name:svn Location:htt ...