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无法满足大量的转移

怎么办呢?

这里提供几个解决办法:

  1. 改变枚举顺序

    通常出题人是不会让你过正常思维整出来的题目的

    所以我们要换一种顺序去得到正确答案并且快速枚举

  2. 可行性剪枝

    说白了就是往最好的方面去走,然后排除绝对不可能的选项

    先走最有可能的选项

    这样我们就有了一个更好的搜索树让可行性这个剪枝更加优秀

  3. 判重

    有一些搜索的搜索树是相同的

    可能 or 不可能都剪掉

    然后有一部分填空的题目上下、左右有对称性

    如果重复也可以直接剪掉

  4. 卡时

    有的时候你已经算出正确的答案了

    特别是你的枚举顺序特别好的时候

    这个时候如果快要超时了(当然你不知道答案是否正确)

    你就赶紧掐断这个搜索树

    直接输出目前为止最好的答案

    这也不失为一种暴力的好办法

    毕竟有的时候确实是好用(Orz)

搜索就说这么多

下午

基础数据结构

  1. 单调栈

单调栈当然是比较高级的栈

其中的元素满足一定的单调性

当我们弹出其中元素的时候

我们还要进行状态的转移

  1. BST

二叉搜索树之所以还讲

是因为要为后面线段树做好铺垫

而且搜索树的性质、思想十分重要

所以讲了BST

  1. 树状数组

树状数组之所以还有用处

是因为代码短,常数小

而且用它的地方还有求逆序对

所以好处多多

但是局限性很大

只要元素不满足“可以相减来转移”的性质

树状数组就废了

  1. 线段树

线段树是一个好东西

在维护区间操作的时候十分的给力

注意tag的用法

有的时候还是要进行一波玄学操作的

  1. 左偏树

老师竟然不会普通堆!于是一波福利就来了。

这个左偏树我做了详细的介绍,可以 点这里 来查看。

今天的例题我先不放了......等我先都做完了再说qwq

qbxt Day2 on 19-7-25的更多相关文章

  1. QBXT Day2主要是数据结构(没写完先占坑)

    简单数据结构 本节课可能用到的一些复杂度: O(log n). 1/1+1/1/.....1/N+O(n log n) 在我们初学OI的时候,总会遇到这么一道题. 给出N次操作,每次加入一个数,或者询 ...

  2. 19.3.25 sql查询语句

    1.单表查询:select * from 表名 where id = 111 2.查询表内数据并以id排序:select * from 表名 order by id (降序:desc/升序:asc) ...

  3. QBXT Day2

    遭遇[问题描述]你是能看到第一题的 friends呢.—— hjaN座楼房,立于城中 .第i座楼,高度 hi.你需要一开始选择座楼,开始跳楼. 在第 i座楼准备跳需要 ci的花费. 每次可以跳到任何一 ...

  4. Java每日一面(Part1:计算机网络)[19/11/25]

    作者:晨钟暮鼓c个人微信公众号:程序猿的月光宝盒 1. HTTP相关[2] 1.1Get请求和Post请求的区别 从三个层面来回答: 1.1.1 从HTTP报文层面: ​ Get请求将请求信息放在UR ...

  5. 蓝桥杯刷题,第四界省赛B组

    题头,本内容的题目和部分内容均来自博客:https://blog.csdn.net/ryo_218/article/details/79704030 ,在此感谢. 1. 题目标题:高斯日记大数学家高斯 ...

  6. 【转载】JAVA基础:注解

    原文:https://www.cnblogs.com/xdp-gacl/p/3622275.html#undefined 一.认识注解 注解(Annotation)很重要,未来的开发模式都是基于注解的 ...

  7. java基础—注解annotation

    一.认识注解 注解(Annotation)很重要,未来的开发模式都是基于注解的,JPA是基于注解的,Spring2.5以上都是基于注解的,Hibernate3.x以后也是基于注解的,现在的Struts ...

  8. 【Java】时间戳与Date相互转换

    时间戳转Date public static void main(String[] args) { // 10位的秒级别的时间戳 long time1 = 1527767665; String res ...

  9. @interface 注解详解

    转:http://www.cnblogs.com/xdp-gacl/p/3622275.html 只为成功找方法,不为失败找借口! Java基础加强总结(一)——注解(Annotation) 一.认识 ...

随机推荐

  1. tensorflow 之Dataset数据集之批量数据

    ###生成批次数据 import tensorflow as tf '''reapt()生成重复数据集 batch()将数据集按批次组合''' file_name = ['img1','img2',' ...

  2. Requests爬取网页的编码问题

    Requests爬取网页的编码问题 import requests from requests import exceptions def getHtml(): try: r=requests.get ...

  3. Pikachu漏洞练习平台实验——文件包含(File Inclusion)(六)

    1.概述 1.1简介 在 Web 后台开发中,程序员往往为了提高效率以及让代码看起来更加简洁,会使用 “包含” 函数功能.比如把一系列功能函数都写进 function.php 中,之后当某个文件需要调 ...

  4. 关于Python的10大实用编程技巧

      Python 是一种通用的脚本开发语言,比其他编程语言更加简单.易学,其面向对象特性甚至比Java.C#..NET更加彻底,因此非常适合快速开发. Python 已经成为最受欢迎的程序设计语言之一 ...

  5. 《JAVA设计模式》之代理模式(Proxy)

    在阎宏博士的<JAVA与模式>一书中开头是这样描述代理(Proxy)模式的: 代理模式是对象的结构模式.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用. 代理模式的结 ...

  6. ToString()的简单介绍

    1.在某一个类中重写该类的toString()方法,是为了方便打印该类实例中的内容.

  7. [CF804F]Fake bullions

    Solution: ​ 这题可以分为两个部分, ​ 一个部分为处理出每个点最大的金条数与最小的金条数,记为 \([Min_i, Max_i]\) ​ 第二部分为对于 \(n\) 个变量 \(x_i\i ...

  8. 使用redis来存储session,不同框架对session的命名规则是不一样的

    今天做了一个测试,在同一个云服务器上,搭建了两个server,其中一个是用laravel框架写的,另外一个使用原生php开发的,为了提高访问的速度,使用云服务器中的redis来存储session数据, ...

  9. HDU 6315 Naive Operations 【势能线段树】

    <题目链接> 题目大意: 给出两个序列,a序列全部初始化为0,b序列为输入值.然后有两种操作,add x y就是把a数组[x,y]区间内全部+1,query x y是查询[x,y]区间内∑ ...

  10. 攻防世界--dmd-50

    测试文件:https://adworld.xctf.org.cn/media/task/attachments/7ef7678559ea46cbb535c0b6835f2f4d 1.准备 获取信息 6 ...