这里将记录着我在接下来的日子里在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. cf1216E2 Numerical Sequence (hard version) 二分查找、思维题

    题目描述 The only difference between the easy and the hard versions is the maximum value of k. You are g ...

  2. java NIO 原理解析之学习笔记

    关键抽象 1.Buffer缓冲区 NIO数据传递模型,是一个连续的内存区域.所有数据传递均通过buffer类处理:NIO提供了字符串.整形.字节.堆等多种缓冲区. 2.Channel(通道) NIO把 ...

  3. mysql两种重要的引擎

    其中MyISAM:不支持事物,表锁 .frm : 表结构定义文件 .MYD: 表数据 .MYI:索引文件 InnoDB:支持事物,行锁 .frm : 表结构定义文件 .ibd:表空间(数据和索引)

  4. 如果你想写自己的Benchmark框架

    目录 简介 八条军规 第一条军规 第二条军规 第三条军规 第四条军规 第五条军规 第六条军规 第七条军规 最后一条军规 总结 简介 使用过JMH的同学一定会惊叹它的神奇.JMH作为一个优秀的Bench ...

  5. MYSQL 之 JDBC(十三):处理事务

    所谓事务是指:一组逻辑操作单元,使数据从一种状态变换到另一种状态. 事务的ACID属性 原子性,Atomicity:事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生. 一致性,Con ...

  6. 数据分析04 /基于pandas的DateFrame进行股票分析、双均线策略制定

    数据分析04 /基于pandas的DateFrame进行股票分析.双均线策略制定 目录 数据分析04 /基于pandas的DateFrame进行股票分析.双均线策略制定 需求1:对茅台股票分析 需求2 ...

  7. Python之爬虫(二十五) Scrapy的中间件Downloader Middleware实现User-Agent随机切换

    总架构理解Middleware 通过scrapy官网最新的架构图来理解: 这个图较之前的图顺序更加清晰,从图中我们可以看出,在spiders和ENGINE提及ENGINE和DOWNLOADER之间都可 ...

  8. unity-疑难杂症(一)

    1.使用odin插件序列化,当出现预制体有引用类型的关联, 拖到scene就没关联时,可右键预制体--Reimport解决. 2.类似问题1,脚本组件关联AudioMixer,拖到scene没有关联, ...

  9. Burp Suite Report - 报告功能

    1. 通过点击Host选择不同的颜色,可以设置严重性: 2.生成网页版应用分析报告:选中所有条目->右击网址,保存所有选中项目,存储格式为html.

  10. Python Ethical Hacking - TROJANS Analysis(4)

    Adding Icons to Generated Executables Prepare a proper icon file. https://www.iconfinder.com/ Conver ...