考虑分别求出RG和GB的最小生成树,然后剩下的边中肯定选择较小的边加入这两颗生成树

 1 #include<bits/stdc++.h>
2 using namespace std;
3 #define N 105
4 struct ji{
5 int x,y,z;
6 char s[11];
7 }e[N];
8 vector<int>v;
9 int t,n,m,f[N],ans[N];
10 bool cmp(ji x,ji y){
11 return x.z<y.z;
12 }
13 int find(int k){
14 if (k==f[k])return k;
15 return f[k]=find(f[k]);
16 }
17 void tree(char c){
18 int tot=0,sum=0;
19 for(int i=1;i<=n;i++)f[i]=i;
20 v.clear();
21 for(int i=1;i<=m;i++)
22 if (e[i].s[0]==c)v.push_back(e[i].z);
23 else
24 if (find(e[i].x)==find(e[i].y))v.push_back(e[i].z);
25 else{
26 tot++;
27 sum+=e[i].z;
28 f[find(e[i].x)]=find(e[i].y);
29 }
30 if (tot<n-1)return;
31 ans[tot]=min(ans[tot],sum);
32 for(int i=0;i<v.size();i++){
33 sum+=v[i];
34 ans[++tot]=min(ans[tot],sum);
35 }
36 }
37 int main(){
38 scanf("%d",&t);
39 for(int ii=1;ii<=t;ii++){
40 scanf("%d%d",&n,&m);
41 for(int i=1;i<=m;i++)scanf("%d%d%d%s",&e[i].x,&e[i].y,&e[i].z,e[i].s);
42 sort(e+1,e+m+1,cmp);
43 memset(ans,0x3f,sizeof(ans));
44 tree('B');
45 tree('R');
46 printf("Case #%d:\n",ii);
47 for(int i=1;i<=m;i++)
48 if (ans[i]==0x3f3f3f3f)printf("-1\n");
49 else printf("%d\n",ans[i]);
50 }
51 }

[hdu6349]三原色图的更多相关文章

  1. 【2018百度之星资格赛】F 三原色图 - 最小生成树

    题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=6349 Knowledge Point: 最小生成树算法Prim&Kruskal Summari ...

  2. 2018"百度之星"程序设计大赛 - 资格赛hdu6349三原色(最小生成树)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6349 题目: 三原色图 Time Limit: 1500/1000 MS (Java/Others)  ...

  3. 2018 百度之星 初赛 第六题 HDU6349

    三原色图  Accepts: 281  Submissions: 1261  Time Limit: 1500/1000 MS (Java/Others)  Memory Limit: 262144/ ...

  4. Geogebra里给带有曲线和直线混合边界的封闭区域填充颜色

    目的 用Geogebra绘制如图所看到的曲线,并填充如图边界的区域为实心: 用代码实现当然是能够的,可是,图形过于简单的时候用代码就不经济了.由于每个细小变动都还要调整改动代码并预览,非所见即所得.往 ...

  5. 2018"百度之星"程序设计大赛 - 资格赛 A/B/E/F

    调查问卷  Accepts: 505  Submissions: 2436  Time Limit: 6500/6000 MS (Java/Others)  Memory Limit: 262144/ ...

  6. 2018"百度之星"程序设计大赛 - 资格赛

    调查问卷  Accepts: 1546  Submissions: 6596  Time Limit: 6500/6000 MS (Java/Others)  Memory Limit: 262144 ...

  7. 2018百度之星资格赛A B F

    A.调查问卷 度度熊为了完成毕业论文,需要收集一些数据来支撑他的论据,于是设计了一份包含 mm 个问题的调查问卷,每个问题只有 'A' 和 'B' 两种选项. 将问卷散发出去之后,度度熊收到了 nn  ...

  8. Opencv学习笔记5:Opencv处理彩虹图、铜色图、灰度反转图

    一.概述: 人类能够观察到的光的波长范围是有限的,并且人类视觉有一个特点,只能分辨出二十几种灰度,也就是说即使采集到的灰度图像分辨率超级高,有上百个灰度级,但是很遗憾,人们只能看出二十几个,也就是说信 ...

  9. matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色

    一起来学matlab-matlab学习笔记9 高级绘图命令_2 图形的高级控制_视点控制和图形旋转_色图和颜色映像_光照和着色 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考书籍 < ...

随机推荐

  1. CF1082G Petya and Graph(最小割,最大权闭合子图)

    QWQ嘤嘤嘤 感觉是最水的一道\(G\)题了 顺便记录一下第一次在考场上做出来G qwqqq 题目大意就是说: 给你n个点,m条边,让你选出来一些边,最大化边权减点权 \(n\le 1000\) QW ...

  2. spark性能优化(一)

    本文内容说明 初始化配置给rdd和dataframe带来的影响 repartition的相关说明 cache&persist的相关说明 性能优化的说明建议以及实例 配置说明 spark:2.4 ...

  3. Linux命令查看内存、整体负载、端口查看、进程查看、vim编辑器(3)

    一.资源占用命令   1.查看内存(free) free命令默认是以kb为单位显示的. free -m用Mb单位来显示. free -h显示单位 . free -h -s 3 ,每隔三秒刷新一次,如果 ...

  4. 【UE4 设计模式】观察者模式 Observer Pattern

    概述 描述 定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新.观察者模式又叫做 发布-订阅(Publish/Subscribe)模式 模型-视图(M ...

  5. Linux搭建SVN服务器详细教程

    前言 本文讲解Linux系统下如何搭建SVN服务器,详细说明各配置项的功能,最终实现可管控多个项目的复杂配置. SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统 ...

  6. Alpha-技术规格说明书

    项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任健) 这个作业的要求在哪里 团队项目-计划-功能规格说明书 一.架构与技术栈 1.整体架构 本项目的整体架构如上图所示.下面我们将对涉及 ...

  7. Noip模拟47 2021.8.25

    期望得分:55+24+53 实际得分:0+0+3 乐死 累加变量清零了吗? 打出更高的部分分暴力删了吗? 样例解释换行你看见了吗? T1 Prime 打出55分做法没删原来的暴力,结果就轻松挂55分 ...

  8. 洛谷 P5785 [SDOI2012] 任务安排

    链接: P5785 弱化版:P2365 题意: 有 \(n\) 个任务待完成,每个任务有一个完成时间 \(t_i\) 和费用系数 \(f_i\),相邻的任务可以被分成一批.从零时刻开始这些任务会被机器 ...

  9. STL 去重 unique

    一.unique函数 类属性算法unique的作用是从输入序列中"删除"所有相邻的重复元素. 该算法删除相邻的重复元素,然后重新排列输入范围内的元素,并且返回一个迭代器(容器的长度 ...

  10. poj 2724 Purifying Machine(二分图最大匹配)

    题意: 有2^N块奶酪,编号为00...0到11..1. 有一台机器,有N个开关.每个开关可以置0或置1,或者置*.但是规定N个开关中最多只能有一个开关置*. 一旦打开机器的开关,机器将根据N个开关的 ...