bzoj 题目选做
这里将记录着我在接下来的日子里在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 题目选做的更多相关文章
- jzyz 题库 题目选做
题库中也有很多我想不出来的模拟赛的题目.做还是必要的.做自己的题目 时间很紧 想想自己的文化课 我又没有那么强 我必须得刷. LINK:水题一道 发现是一道计数题 计数题拿高分的才是王者,但是 计数题 ...
- BZOJ 题目乱做
记录一点在 BZOJ 上做的题. 众所周知原 BZOJ 炸掉了,于是跑去了 HydroOJ 的 BZOJ 域上面做. 目录 P1001 [Beijing2006]狼抓兔子 P1002 [FJOI200 ...
- CF 题目选做
写省选的题目对noip没什么大用 关键是 细节题或者是思考题比较重要 练思维自然是CF比较好了 把我见到的比较好的CF题放上来刷一刷. LINK:Complete the projects 就是说一个 ...
- NOIP PJ/CSP-J 题目选做
1. luoguP7074 [CSP-J2020] 方格取数 2. luoguP5662 [CSP-J2019] 纪念品 3. luoguP2671 [NOIP2015 普及组] 求和 4. luog ...
- Atcoder 水题选做
为什么是水题选做呢?因为我只会水题啊 ( 为什么是$Atcoder$呢?因为暑假学长来讲课的时候讲了三件事:不要用洛谷,不要用dev-c++,不要用单步调试.$bzoj$太难了,$Topcoder$整 ...
- 贪心/构造/DP 杂题选做Ⅱ
由于换了台电脑,而我的贪心 & 构造能力依然很拉跨,所以决定再开一个坑( 前传: 贪心/构造/DP 杂题选做 u1s1 我预感还有Ⅲ(欸,这不是我在多项式Ⅱ中说过的原话吗) 24. P5912 ...
- 迭代和JDB(课下作业,选做)
迭代和JDB(课下作业,选做) 题目要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图 ...
- 20155228 2017-11-19 实现mypwd(选做,加分)
20155228 2017-11-19 实现mypwd(选做,加分) 题目和要求 学习pwd命令 研究pwd实现需要的系统调用(man -k; grep),写出伪代码 实现mypwd 测试mypwd ...
- 2017-2018-2 20165312 课下选做 MySort
2017-2018-2 20165312 课下选做 MySort 题目描述 模拟实现Linux下Sort -t : -k 2的功能,参考 Sort的实现. import java.util.*; pu ...
随机推荐
- Kail系统更新指令
0x00源更新 国内更新源 leafpad /etc/apt/sources.list 然后复制粘贴下面的源 #kali官方源 deb http://http.kali.org/kali kali-r ...
- Java 项目创建 -- 统一结果处理、统一异常处理、统一日志处理
一.IDEA 插件使用 1.说明 此处使用 SpringBoot 2.2.6 .JDK 1.8 .mysql 8.0.18 作为演示. 使用 IDEA 作为开发工具. 2.IDEA 插件 -- Lom ...
- C++快速读写
1.主函数的最前面加入这个 std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); 2.这是一个读入数字的快读 inline int read() ...
- python 爬虫由于网络或代理不能用导致的问题处理方法
平时在爬取某些网页的时候,可能是由于网络不好或者代理池中的代理不能用导致请求失败.此时有们需要重复多次去请求,python中有现成的,相应的包供我们使用: 我们可以利用retry模块进行多次请求,如果 ...
- JVM 专题六:运行时数据区(一)概述
1. 运行时数据区架构图 2. 内存 内存是非常重要的系统资源,是硬盘和cpu的中间仓库及桥梁,承载着操作系统和应用程序的实时运行.JVM内存布局规定了JAVA在运行过程中内存申请.分配.管理的策略, ...
- 数据可视化之powerBI技巧(五)在Power BI中写出优雅的度量值是什么体验?
之前的文章(采悟:连接表的几个DAX函数,一次全掌握)介绍了产品A的客户与产品B的客户的各种交叉关系,其中最常用的应该是找出A和B的共同客户,以便进行产品关联分析. 之前的思路是计算出两个产品的共同客 ...
- java大数据最全课程学习笔记(1)--Hadoop简介和安装及伪分布式
Hadoop简介和安装及伪分布式 大数据概念 大数据概论 大数据(Big Data): 指无法在一定时间范围内用常规软件工具进行捕捉,管理和处理的数据集合,是需要新处理模式才能具有更强的决策力,洞察发 ...
- elementui 使用Form表单 的 resetForm表单功能出现的问题
代码因为在保密机上,这里只进行描述并截取elemen文档中的代码作为参考 今天在开发一个很简单需求的时候遇到的问题,在使用elementui的表单功能,将增和改的表单进行了复用,是在表单的父组件 dr ...
- 初识Java对象
初始Java对象 本文的概述顺序 1什么是面向对象编程(面向对象编程与 面向过程编程的区别) 2类和对象的的关系 3类的定义 4对象的创建 5对象使用的一些细节 5.1对象在内存中的产生及分布 5.2 ...
- Python3 迭代器深入解析
第6章 函数 6.1 函数的定义和调用 6.2 参数传递 6.3 函数返回值 6.4 变量作用域 6.5 匿名函数(lambda) 6.6 递归函数 6.7 迭代器 6.8 生成器 6.9 装饰器 6 ...