博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ChiBi ZOJ - 3080
阅读量:4114 次
发布时间:2019-05-25

本文共 1138 字,大约阅读时间需要 3 分钟。

题意:曹操有一些船,这些船很多是连在一起的,现在让你派一些士兵去烧船,其中要求派出的士兵数最少(隐含意:由于一些船是连在一起的,所以就是一个连通块派出一个士兵)现在问你烧掉所有的船所需要的最少时间。

思路:先使用并查集将每个联通快,直接标记即可,然后遍历每个联通快里的节点,找出每个烧掉每个联通快所需要的最少时间,然后取所有联通快烧掉时所用时间最长的一个。

#include 
using namespace std;const int maxn=1050;int n;int mat[maxn][maxn];vector
v[maxn];int a[maxn];vector
sub[maxn];int vis[maxn];int id[maxn];int t[maxn];int inq[maxn];const int inf=0x3f3f3f;int dis[maxn];int fa[maxn];void Init(){ for(int i=0; i<=n; i++) { v[i].clear(); fa[i]=i; }}int Find_x(int x){ return fa[x]=(x==fa[x]?x:Find_x(fa[x]));}int spfa(int u){ queue
p; p.push(u); memset(inq,0,sizeof(inq)); inq[u]=1; memset(dis,inf,sizeof(dis)); dis[u]=0; while(!p.empty()) { int s=p.front(); p.pop(); inq[s]=0; for(int i=0; i
dis[s]+mat[s][son]) { dis[son]=dis[s]+mat[s][son]; if(!inq[son]) { inq[son]=1; p.push(son); } } } } int ans=0; for(int i=1; i<=n; i++) { if(dis[i]

转载地址:http://efgsi.baihongyu.com/

你可能感兴趣的文章
Golang学习日志 ━━ map等类型的指针分析
查看>>
Golang学习日志 ━━ 实现io.copy的几种方式
查看>>
Golang学习日志 ━━ 当前时间time.Now()和自定义时间time.Parse()的差值now.Sub(parse)注意点
查看>>
Golang学习日志 ━━ 单向通道在函数中作为参数和返回值时的具体表现
查看>>
Golang学习日志 ━━ atomic明明是原子操作,并发结果却出错
查看>>
Golang学习日志 ━━ http:一个函数中同时读取和写入可能导致无法获得post值的分析
查看>>
Golang面试考题记录 ━━ 删除排序数组中的重复项99.75%
查看>>
Golang面试考题记录 ━━ 买卖股票的最佳时机 II 100%
查看>>
Golang面试考题记录 ━━ 旋转数组 ~~ 执行95.39%和内存100%的抉择
查看>>
Golang面试考题记录 ━━ 存在重复 100.00%
查看>>
Golang面试考题记录 ━━ 只出现一次的数字,学习异或^=处理
查看>>
Golang面试考题记录 ━━ 两个数组的交集 II 双100%及goto、continue和break的用法
查看>>
Golang面试考题记录 ━━ 加一,暂无执行排名
查看>>
Golang面试考题记录 ━━ 移动零100%务必深刻理解方法三
查看>>
Golang面试考题记录 ━━ 两数之和 ,能一遍循环就一遍循环
查看>>
Golang面试考题记录 ━━ 旋转图像~~二维数组旋转90度
查看>>
Golang面试考题记录 ━━ 有效的数独,没发现什么特别好的算法,就是暴力,结果也差不多
查看>>
Golang面试考题记录 ━━ 反转字符串,一种思路几种细节的不同结果
查看>>
Golang面试考题记录 ━━ 整数反转 解答及扩展的三个知识点
查看>>
Golang面试考题记录 ━━ 字符串中的第一个唯一字符 ,拓展:ASCII和strings字符串查找的用法
查看>>