qbxt Day2 on 19-7-25
qbxt Day2 on 19-7-25
——TGZCBY
上午
1. 矩阵乘法在图论上的应用
有的时候图论的转移方程可以用dp的方式转移
特别是两个数的乘积求和的时候
比如邻接矩阵中f[i][j]表示走了i条边之后到达j点的方案数
直接用最后的矩阵*邻接矩阵^p就基本OK
通常情况下能够用矩阵乘法解决的优化问题
都有这种情况出现
然而要注意:数据范围
因为矩阵乘法的复杂度几乎无法保证\(\leq O(n^2)\)
我们这时候还是需要尽量去合并范围更小的乘法项
去优化这个更加难受的优化
牢记矩阵乘法有结合律,没有交换律
2. 搜索的剪枝技巧
zhx:说实话,我无法教给你们万用的技巧
因为每一个题都有一个特定的剪枝技巧
真的!!每一个题都不一样的
但是一些通用的剪枝技巧还是有迹可循
比如我们先想:什么时候用bfs
bfs通常使用在计数的时候
这个时候我们不会让dfs去跑一遍作死
然后还有前后数据没有太大关联的时候
这个时候状态转移好转移啊
如果bfs炸了,我们还是回到一个dfs上
dfs的好处就是状态转移直观啊
但是dfs无法满足大量的转移
怎么办呢?
这里提供几个解决办法:
改变枚举顺序
通常出题人是不会让你过正常思维整出来的题目的
所以我们要换一种顺序去得到正确答案并且快速枚举
可行性剪枝
说白了就是往最好的方面去走,然后排除绝对不可能的选项
先走最有可能的选项
这样我们就有了一个更好的搜索树让可行性这个剪枝更加优秀
判重
有一些搜索的搜索树是相同的
可能 or 不可能都剪掉
然后有一部分填空的题目上下、左右有对称性
如果重复也可以直接剪掉
卡时
有的时候你已经算出正确的答案了
特别是你的枚举顺序特别好的时候
这个时候如果快要超时了(当然你不知道答案是否正确)
你就赶紧掐断这个搜索树
直接输出目前为止最好的答案
这也不失为一种暴力的好办法
毕竟有的时候确实是好用(Orz)
搜索就说这么多
下午
基础数据结构
- 单调栈
单调栈当然是比较高级的栈
其中的元素满足一定的单调性
当我们弹出其中元素的时候
我们还要进行状态的转移
- BST
二叉搜索树之所以还讲
是因为要为后面线段树做好铺垫
而且搜索树的性质、思想十分重要
所以讲了BST
- 树状数组
树状数组之所以还有用处
是因为代码短,常数小
而且用它的地方还有求逆序对
所以好处多多
但是局限性很大
只要元素不满足“可以相减来转移”的性质
树状数组就废了
- 线段树
线段树是一个好东西
在维护区间操作的时候十分的给力
注意tag的用法
有的时候还是要进行一波玄学操作的
- 左偏树
老师竟然不会普通堆!于是一波福利就来了。
这个左偏树我做了详细的介绍,可以 点这里 来查看。
今天的例题我先不放了......等我先都做完了再说qwq
qbxt Day2 on 19-7-25的更多相关文章
- QBXT Day2主要是数据结构(没写完先占坑)
简单数据结构 本节课可能用到的一些复杂度: O(log n). 1/1+1/1/.....1/N+O(n log n) 在我们初学OI的时候,总会遇到这么一道题. 给出N次操作,每次加入一个数,或者询 ...
- 19.3.25 sql查询语句
1.单表查询:select * from 表名 where id = 111 2.查询表内数据并以id排序:select * from 表名 order by id (降序:desc/升序:asc) ...
- QBXT Day2
遭遇[问题描述]你是能看到第一题的 friends呢.—— hjaN座楼房,立于城中 .第i座楼,高度 hi.你需要一开始选择座楼,开始跳楼. 在第 i座楼准备跳需要 ci的花费. 每次可以跳到任何一 ...
- Java每日一面(Part1:计算机网络)[19/11/25]
作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[2] 1.1Get请求和Post请求的区别 从三个层面来回答: 1.1.1 从HTTP报文层面: Get请求将请求信息放在UR ...
- 蓝桥杯刷题,第四界省赛B组
题头,本内容的题目和部分内容均来自博客:https://blog.csdn.net/ryo_218/article/details/79704030 ,在此感谢. 1. 题目标题:高斯日记大数学家高斯 ...
- 【转载】JAVA基础:注解
原文:https://www.cnblogs.com/xdp-gacl/p/3622275.html#undefined 一.认识注解 注解(Annotation)很重要,未来的开发模式都是基于注解的 ...
- java基础—注解annotation
一.认识注解 注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts ...
- 【Java】时间戳与Date相互转换
时间戳转Date public static void main(String[] args) { // 10位的秒级别的时间戳 long time1 = 1527767665; String res ...
- @interface 注解详解
转:http://www.cnblogs.com/xdp-gacl/p/3622275.html 只为成功找方法,不为失败找借口! Java基础加强总结(一)——注解(Annotation) 一.认识 ...
随机推荐
- 机器学习实战笔记-7-AdaBoost元算法
AdaBoost(Adaptive boosting)元算法 元算法:将不同分类器组合起来的结果,也叫集成方法. AdaBoost优点:泛化错误率,易编码,可应用在大部分分类器,无参数调整:缺点:对离 ...
- Logistic Algorithm分类算法的Octave仿真
本次Octave仿真解决的问题是,根据两门入学考试的成绩来决定学生是否被录取,我们学习的训练集是包含100名学生成绩及其录取结果的数据,需要设计算法来学习该数据集,并且对新给出的学生成绩进行录取结果预 ...
- 移动端安全 - 安卓Android - 工具相关
渗透工具 drozer .安装文件解压后文件介绍 setup.exe ---安装 agent.apk ---用于调试 - 安装在安卓手机上 使用命令 . cd 到 drozer 安装目录 . adb ...
- SQL Server 分页语句查询
--查询第10页的数据(15条) SELECT TEMP1.* FROM( SELECT TOP 15 ROW_NUMBER() OVER(ORDER BY ID ASC) AS ROWID,* FR ...
- 如何创建linux虚拟机
一.安装配置linux虚拟机 第1步:运行"Vmware WorkStation",看到主页面. 第2步:创建新的虚拟机,新建虚拟机向导——典型(推荐). 第3步:选择稍后安装操作 ...
- python安装numpy
命令介绍: D:\computerSoft\python3.6.4\Scripts>python36 pip3.6.exe install numpy # 通过pip下载对应版本的numpy,然 ...
- [fw]linux 下如何查看和踢除正在登陆的其它用户
linux 下如何查看和踢除正在登陆的其它用户 Posted on 2011/09/01 如何在linux下查看当前登录的用户,并且踢掉你认为应该踢掉的用户?请使用who这个命令来查看当前正在登录 ...
- P4390 [BOI2007]Mokia 摩基亚
传送门 对于一个询问 $(xa,ya),(xb,yb)$,拆成 $4$ 个询问并容斥一下 具体就是把询问变成求小于等于 $xb,yb$ 的点数,减去小于等于 $xa-1,yb$ 和小于等于 $xb,y ...
- angularjs 信息链接 转摘自:http://www.zhihu.com/question/27427447
这个问题嘛,真不好回答,问的太笼统了,其实你只要熟悉掌握了Angular.js,自然而然的就会用Angular.js结合自身的业务去构建SPA程序了,Angular.js是一个比较全面的框架,按照他的 ...
- JVM(4)之 使用MAT排查堆溢出
开发十年,就只剩下这套架构体系了! >>> 接下来讲解如何设置以及当发生堆溢出的时候怎么排查问题.先看一小段代码: 代码中使用了一个无限循环来为list添加对象,如果采用 ...