http://acm.hdu.edu.cn/showproblem.php?pid=4313

贪心算法:类似kruskal最小生成树的过程,不过此处将边按权值从大到小排列,每次将边加进来时要判断是否会使两个危险的点连通,是的话这条边就是需要被删除的,否则将它加到树上。

还有一种 说是树形DP 不懂

这题一直WA 看了秦老师的代码 用的--int64 就改了下数据类型 过了。。。

并查集+快排+去掉危险的结点

View Code

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<stdlib.h>
 4 typedef struct node
 5 {
 6     int v1,v2,e;
 7 }st;
 8 int father[100001],w,f[100001];
 9 st q[100001];
10 int cmp(const void *a,const void *b)
11 {
12     return ((st *)b)->e-((st *)a)->e;
13 }
14 int find(int x)
15 {
16     if(x!=father[x])
17     father[x] = find(father[x]);
18     return father[x];
19 }
20 void union1(int x,int y,int z)
21 {
22     father[x] = y;
23 }
24 int main()
25 {
26     int i,j,k,n,m,t,flag;
27     __int64 s;
28     scanf("%d", &t);
29     while(t--)
30     {
31         memset(f,0,sizeof(f));
32         scanf("%d%d", &n,&k);
33         s = 0;
34         for(i = 0; i < n ; i++)
35             father[i] = i;
36         for(i = 0; i < n-1 ; i++)
37             scanf("%d%d%d", &q[i].v1,&q[i].v2,&q[i].e);
38         qsort(q,n-1,sizeof(q[0]),cmp);
39         for(i = 0 ; i < k ;i++)
40         {
41             scanf("%d",&w);
42             f[w] = 1;
43         }
44         for(i = 0 ;i < n-1 ; i++)
45         {
46             int px = find(q[i].v1);
47             int py = find(q[i].v2);
48             if(px!=py)
49             {
50                 if(f[px]!=1||f[py]!=1)
51                 {
52                     union1(px,py,q[i].e);
53                     if(f[px]==1)
54                     f[py] = 1;
55                 }
56                 else
57                     s+=q[i].e;
58             }
59         }
60         printf("%I64d\n",s);
61     }
62     return 0;
63 }

转载于:https://www.cnblogs.com/shangyu/archive/2012/07/27/2611164.html

2012 Multi-University Training Contest 2相关推荐

  1. Sichuan University Programming Contest 2018 Preliminary

    嗯为了防止大家AK,所以这次的A题和K题我们就当做不存在好了! 经历了昨天写了两个多小时的博客没保存的心态炸裂,今天终于下了个Markdown.所以我猜这篇的格式应该会更好看一点! 好吧废话不多说 题 ...

  2. HDU 6091 - Rikka with Match | 2017 Multi-University Training Contest 5

    思路来自 某FXXL 不过复杂度咋算的.. /* HDU 6091 - Rikka with Match [ 树形DP ] | 2017 Multi-University Training Conte ...

  3. HDU 6051 - If the starlight never fade | 2017 Multi-University Training Contest 2

    /* HDU 6051 - If the starlight never fade [ 原根,欧拉函数 ] | 2017 Multi-University Training Contest 2 题意: ...

  4. HDU 6058 - Kanade's sum | 2017 Multi-University Training Contest 3

    /* HDU 6058 - Kanade's sum [ 思维,链表 ] | 2017 Multi-University Training Contest 3 题意:给出排列 a[N],求所有区间的第 ...

  5. 2017 Multi-University Training Contest - Team 3 Kanade's sum hd6058

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6058 题目: Kanade's sum Time Limit: 4000/2000 MS (J ...

  6. 2018 Multi-University Training Contest 3 Problem F. Grab The Tree 【YY+BFS】

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6324 Problem F. Grab The Tree Time Limit: 2000/1000 MS ...

  7. hdu 4925 Apple Tree--2014 Multi-University Training Contest 6

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4925 Apple Tree Time Limit: 2000/1000 MS (Java/Others ...

  8. HUST-2015 Multi-University Training Contest 9

    2015 Multi-University Training Contest 9 solutions BY xudyh 1001.Expression 记dp_{l,r}dp​l,r​​表示l,rl, ...

  9. 2018 Multi-University Training Contest 4 Problem E. Matrix from Arrays 【打表+二维前缀和】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6336 Problem E. Matrix from Arrays Time Limit: 4000/20 ...

  10. 2017 Multi-University Training Contest - Team 1

    2017 Multi-University Training Contest - Team 1 01     签到的 #include<bits/stdc++.h> using names ...

最新文章

  1. php400错误的请求,Wordpress中的Ajax返回400错误请求,但不确定如何进一步调试 - WordPress - srcmini...
  2. python【Configparser解析配置文件库】Python3中的configparser模块
  3. LeetCode H-Index II(二分法)
  4. Windows下配置Java开发环境
  5. mysql过程异常处理_mysql数据库存储过程异常处理
  6. linux 使用退格键时出现^H解决方法
  7. linux系统调用open、write、close、read以及stat函数详解
  8. 算法 - KMP算法(字符串匹配)
  9. Illegal group reference异常的分析
  10. Alsa里面恶心的DAPM
  11. linux环境安装 kafka 0.8.2.1 jdk1.6
  12. jdk1.8新特性之lambda表达式及在Android Studio中的使用举例
  13. oracle强大函数,oracle 函数排行
  14. 瑞元双玻组件助力浙江多座分布式电站高效运行
  15. 苹果Mac数据恢复工具:​​​​​​​​Disk Drill Enterprise
  16. android 自定义心电图,Android自定义 View 练习 —— 心电图的绘制
  17. 云控微信开发SDK使用教程--微信联系人标签新增,修改通知服务端
  18. 新浪微博热搜榜“背后的男人”讲述热搜背后的秘密
  19. Vite + Vue3 项目中,使用 vw/vh 适配移动端,并通过 Android Studio 打包
  20. 【HTTP协议其实很简单】03.自己写一个微型静态Web服务器

热门文章

  1. 怎么用小学生计算机玩游戏,小学生不应该玩电脑游戏作文
  2. css将空的div撑开,如何使用css将空的浮动div伸展到可用的全高度?
  3. java regex 正则表达式 提取数字和去除数字,过滤数字,提取价格
  4. Tomcat假死的原因及解决方案
  5. git SSL certificate problem: unable to get local issuer certificate
  6. Apache No installed service named “Apache2.4“的解决办法
  7. 配置Git for windows(Git bash)登录GitHub
  8. mysql日志监控 zabbix_zabbix监控mysql+报警
  9. pcm 采样率转换_高速模数转换器 ADC 树立了实时监测和控制的标准
  10. 最长回文子序列与最长回文子串