贪心,之前先bfs判断是否联通,然后,反向建图,找一个未选择的点,找与他距离最近的点连边,因为每个点都要被选择,所以一个点离他最近的另一个点肯定也被选择,可以贪心

#include<queue>
#include<cstdio>
#include<vector>
#include<Cstring>
#include<iostream>
using namespace std;
const int inf=<<;
vector<int>graph[];
vector<int>num;
int n,m,ans,cnt,pos;
int q[],out[],head[],next[],to[],used[],w[];
void insert(int u,int v,int c)
{
next[++cnt]=head[u];
head[u]=cnt;
to[cnt]=v;
w[cnt]=c;
}
bool bfs(int x)
{
int tot=;
queue<int>q;
q.push(x);
used[x]=;
while(!q.empty())
{
int u=q.front(); q.pop();
for(int i=;i<graph[u].size();i++)
{
int v=graph[u][i];
if(!used[v])
{
tot++;
q.push(v);
used[v]=;
}
}
}
return tot==n;
}
void go(int x)
{
int u=x;
used[pos]=;
while(u!=pos)
{
int MIN=inf,x;
used[u]=;
for(int i=head[u];i;i=next[i])
{
int v=to[i],cost=w[i];
if(cost<MIN)
{
MIN=cost;
x=v;
}
}
ans+=MIN;
if(used[x]) break;
u=x;
}
}
int main()
{
scanf("%d",&n); int MAX=;
for(int i=;i<=n;i++)
{
scanf("%d",q+i);
if(MAX<q[i])
{
MAX=q[i]; pos=i;
}
}
scanf("%d",&m);
for(int i=;i<=m;i++)
{
int u,v,c; scanf("%d%d%d",&u,&v,&c);
graph[u].push_back(v);
insert(v,u,c);
// out[u]++;
}
if(!bfs(pos))
{
cout<<-;
return ;
}
memset(used,,sizeof(used));
/* for(int i=1;i<=n;i++)
{
if(out[i]==0) num.push_back(i);
}*/
for(int i=;i<=n;i++)
{
if(!used[i]) go(i);
}
cout<<ans;
return ;
}

17B的更多相关文章

  1. CF 17B Hierarchy

    Nick's company employed n people. Now Nick needs to build a tree hierarchy of «supervisor-surbodinat ...

  2. 【题解】玲珑杯河南专场17B

    容斥大法妙~其实网上很多的题解虽然给出了容斥系数,但是并没有说明为什么是这个样子的.在这里解释一下好了. 考虑用容斥,实际上就是让 \(ans = \sum_{T\subseteq S}^{\ }f_ ...

  3. 蓝桥杯2020.10.17B组c++

    1.门牌制作 暴力即可 #include <iostream> #include<math.h> #include<string.h> #include<st ...

  4. 【Hello CC.NET】CC.NET 实现自动化集成

    一.背景 公司的某一金融项目包含 12 个子系统,新需求一般按分支来开发,测完后合并到主干发布.开发团队需要同时维护开发环境.测试环境.模拟环境(主干).目前面临最大的两个问题: 1.子系统太多,每次 ...

  5. Socket实现仿QQ聊天(可部署于广域网)附源码(4)-加入数据库系统搭建完成

    1.前言 这是本系列的第四篇文章,上一篇我们讲到实现了客户端对客户端的抖屏与收发各种类型文件,本篇文章我们加入SQLServer数据库实现登录与好友的添加等功能,并对界面做了美化处理.向往常一样我会把 ...

  6. 深入解析SQL Server并行执行原理及实践(上)

    在成熟领先的企业级数据库系统中,并行查询可以说是一大利器,在某些场景下他可以显著的提升查询的相应时间,提升用户体验.如SQL Server, Oracle等, Mysql目前还未实现,而Postgre ...

  7. OAF_文件系列7_实现OAF处理Excel的JXL包介绍(概念)

    20150714 Created By BaoXinjian

  8. convas demo1

    1 getContext 语法 Canvas.getContext(contextID) 参数 参数 contextID 指定了您想要在画布上绘制的类型.当前唯一的合法值是 "2d" ...

  9. NodeJs和ReactJs单元测试工具——Jest

    Jest——Painless JavaScript UnitTesting 特点 适应性强 默认使用Jasmine断言 模块化的 可扩展的 可配置的 沙箱式且快速 虚拟化JS环境,模拟浏览器 并行运行 ...

随机推荐

  1. AC日记——欧几里得的游戏 洛谷 P1290

    题目描述 欧几里德的两个后代Stan和Ollie正在玩一种数字游戏,这个游戏是他们的祖先欧几里德发明的.给定两个正整数M和N,从Stan开始,从其中较大的一个数,减去较小的数的正整数倍,当然,得到的数 ...

  2. android studio 中 .9.png的制作

    折腾好久,最后在一个群里面咨询一个朋友才弄好的,用的是1.2.2版,感觉对.9的支持不太好, 1,用一张干净的png图片放在mipmap里面. 2,点击图片右键最后一项,create 9-patch ...

  3. 百度搜索--jquery

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  4. crontab日常使用梳理

    在日常的运维工作中,对crontab定时任务的制定是再寻常不过的了.根据以往的使用经验梳理如下: 基本格式 :* * * * * command分 时 日 月 周 命令解释:第1列表示分钟1-59 每 ...

  5. PhpExcel中文帮助手册|PhpExcel使用方法

    下面是总结的几个使用方法 include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/ ...

  6. wireshake抓包,飞秋发送信息,python

    http://wenku.baidu.com/link?url=Xze_JY8T15pqI9mBLRpTxWF2d6MP-32xb6UwuE6tsUmitRDheJe-Ju87WlDEDBGuI5MF ...

  7. 表单 - Form - 无刷新提交原理

    为什么Form组件的表单提交可以做到无刷新? EasyUI在提交的时候,将表单作为一个隐藏的iframe进行的提交,并不是我们看到的那个表单进行的提交 并且那个iframe使用了绝对定位,保证页面上不 ...

  8. springmvc 通过异常增强返回给客户端统一格式

    在springmvc开发中,我们经常遇到这样的问题:逻辑正常执行时返回客户端指定格式的数据,比如json,但是遇NullPointerException空指针异常,NoSuchMethodExcept ...

  9. JQuery fullCalendar 时间差 排序获取距当前最近的时间。

    let time = (wo: WoDto) => wo.ScheduleTime || wo.ScheduleStartTime; let wo = technician.wos .filte ...

  10. sdk墙内更新方法

    因为GFW有“保护”,我们能“安全”的遨游在中华互联局域网内.如何快速地更新sdk,一直是Android开发者的心病.网上流传着五花八门的方法,在这我记录一些我用过的切实可行的方法供给有需要的人.同时 ...