qbzt day4 上午
图论
最短路:dijkstra spfa floyd
最小生成树:kruskal
连通性:bfs/dfs tarjan(强连通分量)
其它:拓扑排序 LCA
齿轮:
图的dfs树只有返祖边没有横向边
树边确定了基础的转动比,非树边判定转动比是否可行
Lca
Dijkstra
Pair第一个存的是源点到这个点当前的最短路,第二个存的是这个点的编号
预处理 把1压进去,1到其他的dis都设置为正无穷
不断地从堆顶弹出元素,直到弹空
对其中的元素进行处理
注意如果已经处理过就不用处理了
Spfa
先建一个循环队列或者stl队列,如果不为空就继续运行
每次从队首取出一个元素,标记这个元素不在队列里
枚举所有的出边,如果满足不等式就更新
循环队列:重复利用空间,方便查找bug
//最长路
Floyd
枚举所有中间节点进行扩展
先枚举中间节点
Kruscal
最小生成树的最大边权一定最小
先把所有边权拿出来排序,每次选取边权最小的一条边,把两个端点放在同一个连通块当中
如果两个端点已经在一个连通块中就跳过
并查集了解一下
注意是无向图
拓扑排序
每次删去一个没有入度的节点
考法:拓扑序上dp 判环
Telephone lines
二分答案
边权小于mid相当于会被花费覆盖掉,边权大于mid必须让他免费
考虑从点1到n可不可以有小于k条边权大于mid的边
让大于mid边权为1,小于等于mid边权为0
如果最短路的dis<=k,就说明这个解可行
Revamping trails
分层建图,每一层表示升级了几条路
把有边的两点上下两层分别连一条边权为0的边,点m向上面一层连一条边权为0的点
相当于搞一个映射把二维映射成一维
第k层第i个点(k,i)->(k-1)*n+i
只需要搞一个函数d(k,i)
Wormholes
Spfa判负环
看入队次数
Meeting
这道题难点在建图
我们多建一些点,表示每一个集合,然后把这一个街区内的点用边权为val[i]的有向边指向这个点,再用边权为0的有向边指回来,然后跑dijkstra就好了
寻宝游戏
先考虑离线算法
按照树的dfs序走
按dfs序排序,求出两两之间的lca,求出两个点之间的最短路
在线:比如在i,j中插入点k(字典序),就可以在原来的基础上减去i,j的距离(用lca求)加上i,k的距离和k,j的距离就行了
我们只需要知道插入的数k的前驱和后继,直接用set
复杂度 o(n+mlogn)
飞飞侠
让它飞起来(雾
考虑在这个点上方b[i][j]的点连边,往四周飘,每一次低一格(因为曼哈顿距离)。在每一个点往直下方连边,表示在这个点降落
三维分层图跑三遍最短路就行了
qbzt day4 上午的更多相关文章
- Day4上午
expect100+50+50, In fact 100+10+0. 代码能力还有待提高,部分分应该能拿的.结果...力不从心啊. T1 贪心做的不知对不对. 看来思路是对的,不知道能不能对. 暴力做 ...
- QBXT T15565 Day4上午道路分组
有向并查集维护连通性 优化: vis数组表示能被节点1到达的点 显然,已经分在一个联通块中的点就没必要在用该点扩展了. #include<cstdio> #include<algor ...
- Day4上午解题报告
预计分数:50 +0+0=50 实际分数:50+0+10=60 毒瘤出题人,T3不给暴力分 (*  ̄︿ ̄) T1 https://www.luogu.org/problem/show?pid=T155 ...
- qbzt day7上午
由于优盘咕咕咕了,所以这篇就咕咕咕了 以后还会补上的 qwq
- qbzt day6 上午
还是合并石子,但是这次可以任意两个合并,并且求最大异或和 f[s]表示把s所对应的的石子合并为一堆的最小代价 最后求f[2^n-1] 怎么转移? 最后一次也是把两堆合并成一堆,但是会有很多情况,可以枚 ...
- qbzt day5 上午
动态规划 递推 递归 记忆化搜索 斐波那契数列 1.用其他已经计算好的结果计算自己的结果(递推) 2.用自己的值计算别人的值(考虑对之后的项做出的贡献) cin >> n; f[]= ...
- qbzt day4 下午
有向图的强连通分量 强联通:两个点之间可以互相到达 如果某个图任意两个点都是强联通的,那么称这个图强联通 如果一个图的子图是强联通的,那么称这个图是强联通子图 一个图的极大强联通子图被称作强连通分量 ...
- qbzt day3 上午
内容提要 堆 lca(最近公共祖先) st表 hash 并查集 树状数组 线段树 数据结构 1.堆 Priority_queue 他滋兹:插入删除查询最大值(最小值) 分为大根堆小根堆 2.LCA 首 ...
- qbzt day2 上午
内容提要 贪心 分治 分块 搜索 接着昨天的讲 过河问题 考虑AB是最快的人,CD是最慢的人,要把CD两个人送过河,只有两种方案,牵扯到四个人,并且n个规模的原问题化成了n-2个规模的子问题 那么最后 ...
随机推荐
- [LeetCode] 52. N皇后 II
题目链接 : https://leetcode-cn.com/problems/n-queens-ii/ 题目描述: n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间 ...
- ajax后台请求两种方法(js和jQuery)
(1)js的ajax var xmlHttp; if(window.XMLHttpRequest){ xmlHttp=new XMLHttpRequest(); }else{ xmlHttp=new ...
- oracle的隐藏的东东
1: 在oracle中存在一种特殊的表单:dual 这是一张伪表,不是真正存在的 在日期的查询和触发器等多处用到 只展示系统当前时间: select sysdate from dual; 触发器:往往 ...
- 奇葩的狐火浏览器border属性
今天接到一个bug任务,客户反映火狐浏览器访问时某个商品楼层不显示商品.我立即打开我的火狐浏览器发现没有复现这个bug,后来经过一番折腾,才发现火狐浏览器缩放到90%时,商品楼层果然就消失了,而且每台 ...
- 自己制作 Android Vector Asset 矢量图
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/c5138891/article/deta ...
- 对Xcode菜单选项的详细探索(来自董铂然的微博http://www.cnblogs.com/dsxniubility/p/4983614.html)
本文调研Xcode的版本是 7.1,基本是探索了菜单的每一个按钮.虽然从xcode4一直用到了xcode7,但是一般都只是用了一些基础的功能,说来也惭愧.在一次偶然的机遇突然发现了“显示调用层级”的选 ...
- Eclipse从远程仓库的工程克隆到本地仓库
在Eclipse中,File→Import→Git→Projects from Git 点击Next→Clone URI Next,将工厂地址复制过来 Next,再点击Next, 点击Browse,选 ...
- Linux系统安装使用实录--传送门(持续更新)
1.安装Linux系统 经过两种系统对比,发现ubuntu的资源依赖更方便更全, centos安装时可以配置开发环境,默认有安装的jdk,这一点比Ubuntu方便一点. win10+centos ...
- VB学习一
一.基础函数 CStr() 函数转化表达式为一个字符串 Trim() 移除字符串两侧的空白字符串或者其他预定义字符 成功:返回删除后的字符串 失败:返回空字符串 VBA.Mid(string,star ...
- Ansbile实战经验
一.相关用法: 1.执行shell 获取web组里得eth0接口信息 ansible web -a "ifconfig eth0" 2.执行ifconfig eth0 命令,ans ...