17B
贪心,之前先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的更多相关文章
- CF 17B Hierarchy
Nick's company employed n people. Now Nick needs to build a tree hierarchy of «supervisor-surbodinat ...
- 【题解】玲珑杯河南专场17B
容斥大法妙~其实网上很多的题解虽然给出了容斥系数,但是并没有说明为什么是这个样子的.在这里解释一下好了. 考虑用容斥,实际上就是让 \(ans = \sum_{T\subseteq S}^{\ }f_ ...
- 蓝桥杯2020.10.17B组c++
1.门牌制作 暴力即可 #include <iostream> #include<math.h> #include<string.h> #include<st ...
- 【Hello CC.NET】CC.NET 实现自动化集成
一.背景 公司的某一金融项目包含 12 个子系统,新需求一般按分支来开发,测完后合并到主干发布.开发团队需要同时维护开发环境.测试环境.模拟环境(主干).目前面临最大的两个问题: 1.子系统太多,每次 ...
- Socket实现仿QQ聊天(可部署于广域网)附源码(4)-加入数据库系统搭建完成
1.前言 这是本系列的第四篇文章,上一篇我们讲到实现了客户端对客户端的抖屏与收发各种类型文件,本篇文章我们加入SQLServer数据库实现登录与好友的添加等功能,并对界面做了美化处理.向往常一样我会把 ...
- 深入解析SQL Server并行执行原理及实践(上)
在成熟领先的企业级数据库系统中,并行查询可以说是一大利器,在某些场景下他可以显著的提升查询的相应时间,提升用户体验.如SQL Server, Oracle等, Mysql目前还未实现,而Postgre ...
- OAF_文件系列7_实现OAF处理Excel的JXL包介绍(概念)
20150714 Created By BaoXinjian
- convas demo1
1 getContext 语法 Canvas.getContext(contextID) 参数 参数 contextID 指定了您想要在画布上绘制的类型.当前唯一的合法值是 "2d" ...
- NodeJs和ReactJs单元测试工具——Jest
Jest——Painless JavaScript UnitTesting 特点 适应性强 默认使用Jasmine断言 模块化的 可扩展的 可配置的 沙箱式且快速 虚拟化JS环境,模拟浏览器 并行运行 ...
随机推荐
- java 访问sql server数据库
控制面板--管理工具—ODBC数据源(64位)--系统DNS—添加(名称为“test”,服务器填“.”描述随意) 这里访问的数据库为AdventuerWorks 数据源配置好后可以测试一下,下面是ja ...
- Volley(二)—— 基本Request对象 & RequestQueue&请求取消
详细解读Volley(一)—— 基本Request对象 & RequestQueue&请求取消 Volley它非常适合去进行数据量不大,但通信频繁的网络操作,而对于大数据量的网络操作, ...
- Oracle Update 语句语法与性能分析 - 多表关联
Oracle Update 语句语法与性能分析 - 多表关联 为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中, SQL 代码 --客户资料表 create ...
- IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed 解决方法
WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝.移动.删除等.在I ...
- Centos6 安装 Redis
先确认gcc和tcl已经安装 sudo yum install gcc-c++ sudo yum install tcl 解压, 编译和安装 .tar.gz /usr/src/ cd /usr/src ...
- 【WPF】TextBox样式重写注意事项
1.普通控件重写需要添加一行 <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="C ...
- AngularJS+Node的RESTful之基本实现
欢迎大家指导与讨论 : ) 一.前言 本文主要讲述RESTful在node端与AngularJS两端配合的基本实现方法,为了尽量做到大家易看易懂,因此文章也没有深入探讨(其实是小鹏我只学到目前这些 - ...
- Html5 Egret游戏开发 成语大挑战(一)开篇
最近接触了Egret白鹭引擎,感觉非常好用,提供了各种各样的开发工具让开发者和设计者更加便捷,并且基于typescript语言开发省去了很多学习成本,对于我们这种掉微软坑许久的童鞋来说,确实很有吸引力 ...
- Linux wait函数详解
wait和waitpid出现的原因 SIGCHLD --当子进程退出的时候,内核会向父进程SIGCHLD信号,子进程的退出是个异步事件(子进程可以在父进程运行的任何时刻终止) --子进程退出时,内核将 ...
- iOS蓝牙开发(二)蓝牙相关基础知识
原文链接: http://liuyanwei.jumppo.com/2015/07/17/ios-BLE-1.html iOS蓝牙开发(一)蓝牙相关基础知识: 蓝牙常见名称和缩写 MFI ====== ...