这里将记录着我在接下来的日子里在bzoj上遇到的各种 毒瘤题目

1.轮状病毒

题目是很没意思的 列出状态 显然无法递推 我简单推了一下加动态加点的状态 嗯发现规律没有那么简单 打表 也不太能发现吧

正解显然是 矩阵树定理啊 然后这题咕了 以后再复习矩阵树定理的时候再证明这个结论吧 暂时当做打表做的。

$f_n=f_n*3-f_{n-1}+2$ 然后高精加和高精减即可。由于都是高精和单精之间的运算 所以还是很好写的。

2.[NOI2003 EDitor](https://www.lydsy.com/JudgeOnline/problem.php?id=1507)

这道题还是蛮有意义的学习一下块状链表...(这样我就可以写分块第k大带插入带修改了哈哈

2h过后这啥玩意啊 ex到我了 没想到细节这么多这么复杂 大致是了解了 改天重新了解一下...自闭中。

3.[4180字符串计数](https://www.lydsy.com/JudgeOnline/problem.php?id=4180)

这题鬼的很!看了一眼题解因为真觉得不太会写这道题。

题目意思是 给出一个字符串T 每次我们可以从这个T中取出一个子串构造出来一个长度为n的字符串 且T的字符集为{A B C D}

定义一个长度为n的字符串需要添加子串的次数是最小的,求所有能被构造出来长度为n的字符串所花费的最大次数。

很绕 因为存在最小的最大。这个问题很难去考虑 让人觉得无从下手 因为不知道怎么构造是合法的是最小次数的同时怎么求次数最大。

首先 就从最小次数出发 先构造出来T的后缀自动机,里面存有我们想要的所有子串。然后我们从一个能被构造出来的字符串S 求出怎么构造才是使次数最小。

显然我们让S在T的后缀自动机上跑 跑不动了回到原点继续跑 在原点的次数即最小构造次数 为什么这是最小的?显然。自证不难。

现在我们再来考虑这个问题的模型 在后缀自动机上走n步求经过原点的次数最大。

我们显然有dp f[i][j]表示到了节点i已经走了j步所能获得的最大值 这个dp的复杂度是$T\cdot n$的考虑优化.

我们出发点是固定的原点所连的那几个节点 接下来顺着这几个节点跑还是会回到这个几个节点 不妨设f[i][j]表示 从i节点到j节点经过的边数最小值 当然i和j 一定都是出发节点。这个topsort一下或者bfs一下都可以求出来.

于是我们发现了 刚才那个dp已经被我们转换到了4个点之间的转移了当然复杂度还是近乎4*n的 考虑进一步的优化我们发现这个dp的转移是一个线性递推式矩阵乘法可以优化 进一步来说每乘一次转移矩阵答案+1 还是很难求出答案 但是我们能根据答案求步数 所以二分这个答案 求出在这个答案的情况下的最小步数 从而来判定答案的大小范围即可.

值得一提的是这样做是log^2的 还要乘上矩阵乘法的常数...更快的做法是直接倍增答案即可以一个log解决。

bzoj 题目选做的更多相关文章

  1. jzyz 题库 题目选做

    题库中也有很多我想不出来的模拟赛的题目.做还是必要的.做自己的题目 时间很紧 想想自己的文化课 我又没有那么强 我必须得刷. LINK:水题一道 发现是一道计数题 计数题拿高分的才是王者,但是 计数题 ...

  2. BZOJ 题目乱做

    记录一点在 BZOJ 上做的题. 众所周知原 BZOJ 炸掉了,于是跑去了 HydroOJ 的 BZOJ 域上面做. 目录 P1001 [Beijing2006]狼抓兔子 P1002 [FJOI200 ...

  3. CF 题目选做

    写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个 ...

  4. NOIP PJ/CSP-J 题目选做

    1. luoguP7074 [CSP-J2020] 方格取数 2. luoguP5662 [CSP-J2019] 纪念品 3. luoguP2671 [NOIP2015 普及组] 求和 4. luog ...

  5. Atcoder 水题选做

    为什么是水题选做呢?因为我只会水题啊 ( 为什么是$Atcoder$呢?因为暑假学长来讲课的时候讲了三件事:不要用洛谷,不要用dev-c++,不要用单步调试.$bzoj$太难了,$Topcoder$整 ...

  6. 贪心/构造/DP 杂题选做Ⅱ

    由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...

  7. 迭代和JDB(课下作业,选做)

    迭代和JDB(课下作业,选做) 题目要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图 ...

  8. 20155228 2017-11-19 实现mypwd(选做,加分)

    20155228 2017-11-19 实现mypwd(选做,加分) 题目和要求 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd ...

  9. 2017-2018-2 20165312 课下选做 MySort

    2017-2018-2 20165312 课下选做 MySort 题目描述 模拟实现Linux下Sort -t : -k 2的功能,参考 Sort的实现. import java.util.*; pu ...

随机推荐

  1. 手写一个React-Redux,玩转React的Context API

    上一篇文章我们手写了一个Redux,但是单纯的Redux只是一个状态机,是没有UI呈现的,所以一般我们使用的时候都会配合一个UI库,比如在React中使用Redux就会用到React-Redux这个库 ...

  2. day47 作业

    表准备 create table emp( id int not null unique auto_increment, name varchar(20) not null, sex enum('ma ...

  3. 关于小白一天摆弄Axure产品原型的心得

    因为项目所需,被迫快速设计产品原型,制作app使用视频,这里简单分享一些一个小白第一次触碰产品原型设计的一些心得: 原型设计工具的选用 我这里针对的是贫穷学生党,分享的是自己尝试的几款.有钱大佬自行绕 ...

  4. JS基础知识点(二)

    == 与 === 对于 == 来说,如果对比双方的类型不一样的话,就会进行类型转换,就会进行如下判断流程: 1.首先会判断两者类型是否相同,相同则会进行严格相等比较=== 2.判断是否在对比null和 ...

  5. python 装饰器(五):装饰器实例(二)类装饰器(类装饰器装饰函数)

    回到装饰器上的概念上来,装饰器要求接受一个callable对象,并返回一个callable对象(不太严谨,详见后文). 那么用类来实现也是也可以的.我们可以让类的构造函数__init__()接受一个函 ...

  6. 数据可视化实例(十四):面积图 (matplotlib,pandas)

    偏差 (Deviation) 面积图 (Area Chart) 通过对轴和线之间的区域进行着色,面积图不仅强调峰和谷,而且还强调高点和低点的持续时间. 高点持续时间越长,线下面积越大. https:/ ...

  7. 关于报错,Whoops! Lost connection to ws://XXX.XXX.XXX.XXX:15684/ws

    昨天,在玩rabbitMQ时候,用stompJS从web连接ranbbitMQ时,报了标题的错误消息! 我把我这个html页面代码贴上,简单得讲,就是断开后,重新连接即可.

  8. 爬虫黑科技,我是怎么爬取indeed的职位数据的

    最近在学习nodejs爬虫技术,学了request模块,所以想着写一个自己的爬虫项目,研究了半天,最后选定indeed作为目标网站,通过爬取indeed的职位数据,然后开发一个自己的职位搜索引擎,目前 ...

  9. http连接池存在的问题

    连接的有效性检测是所有连接池都面临的一个通用问题,大部分HTTP服务器为了控制资源开销,并不会 永久的维护一个长连接,而是一段时间就会关闭该连接.放回连接池的连接,如果在服务器端已经关闭,客 户端是无 ...

  10. 普通list和树状list互转

    import java.util.ArrayList; import java.util.List; public class TreeNode { private String id; privat ...