上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 44 下一页
摘要: 没有理解代码。单纯记模板 阅读全文
posted @ 2019-11-04 20:23 古比 阅读(126) 评论(0) 推荐(0) 编辑
摘要: // 最小瓶颈路 指两点之间所有路径中最大的边最小的路径//在最小生成树中,最小瓶颈路就是两点之间的最大值; 先给出一个概念,最小生成树一定是最小瓶颈树(注意这里是树),但反过来的话就不一定; 所以,我们可以用最小生成树的知识来解; 在解的时候,我们需要一步一步的将新加进来的点,与原先已经加进来的点 阅读全文
posted @ 2019-11-04 19:03 古比 阅读(361) 评论(0) 推荐(0) 编辑
摘要: 这道题与模板之间,多了个确定哪个为根的操作; 这道题有技巧,并不需要真正去建立以某个节点为根的树 关于路径的操作,无论以哪个点为根,得出的答案无影响; 关于对子节点进行操作的,有几种情况, 当查询节点刚好是根节点的话,就直接从1开始遍历就好 (因为这道题是以1为根节点) 当查询的节点的孩子或孙子中包 阅读全文
posted @ 2019-11-03 20:35 古比 阅读(139) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/chinhhh/p/7965433.html#firstt 阅读全文
posted @ 2019-11-03 20:14 古比 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 前置知识:拓扑排序 详细注释都在代码里 1 //该题题意明确,就是给定一组字母的大小关系判断他们是否能组成唯一的拓扑序列。 2 //是典型的拓扑排序,但输出格式上确有三种形式: 3 4 // 1.该字母序列有序,并依次输出; 5 6 // 2.该序列不能判断是否有序; 7 8 // 3.该序列字母次 阅读全文
posted @ 2019-10-29 13:36 古比 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 1 //n个点m条有向边,求在入度为零的点到n号点的所有路 2 //径中,哪条边被这些路径覆盖的次数最多 3 //有关DAG的知识,先记个模板 4 #include<iostream> 5 #include<cstdio> 6 #include<cstring> 7 #include<algorithm> 8 using namespace std; 9 typedef long long ll; 阅读全文
posted @ 2019-10-28 22:07 古比 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 大意:给定一个无向连通图,判断至少加多少的边,才能使任意两点之间至少有两条的独立的路(没有公共的边,但可以经过同一个中间的顶点)。 思路:在同一个双连通分量里的所有的点可以看做一个点,收缩后,新图是一棵树,树的边便是原图的桥。现在问题转化为“在树中至少添加多少条边能使图变成边双连通图”,即添加的边的 阅读全文
posted @ 2019-10-28 20:47 古比 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 using namespace std; 5 const int maxn=1e3+10; 6 7 int dfn[maxn],low[maxn],head[maxn],vis 阅读全文
posted @ 2019-10-27 20:15 古比 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 难得不是左偏树,而是思维; 这道题在做得时候,有两个性质 1.如果a是一个不下降序列,那么b[i]==a[i]时取得最优解。 2.如果a是一个严格递减序列,则取a序列的中位数x,令b[1]=b[2]=b[3]=...=b[n]=x,即是最优解。 于是在做得时候,我们会分为几个区间,通过区间得合并去做 阅读全文
posted @ 2019-10-26 12:50 古比 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 题意:有n座城池,m个人; 每座城池有一个耐久度; 每座城池有一个父亲城池(肯定会形成一棵树),还有flag base (这个看题意) 每个人有一个战力值和一个开始进攻的城池序号; 问:1.每个城池能够使将领死亡的死亡数 2.每个将领能够攻占的城池数量; 思路,这道题是一颗树,所以自然而然的想到用d 阅读全文
posted @ 2019-10-25 20:33 古比 阅读(168) 评论(0) 推荐(0) 编辑
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 44 下一页