前言

ABCDE + 口胡 F + 不会一点 G。

正文

A

B

C

D

构造一个环形递增矩阵即可。

E

考虑何时才有一个非降序列。

令 \(val_x\) 为点 \(x\) 的权值。

对于一个相邻的点对 \((u, v)\),可以分成三种情况:

  • \(val_u > val_v\)

此时只有 \(v \to u\) 的可能,\(v\) 向 \(u\) 连边。

  • \(val_u < val_v\)

类似上一种情况,\(u\) 向 \(v\) 连边。

  • \(val_u = val_v\)

此时无论是经过 \(u\) 还是经过 \(v\) 或是 \(u, v\) 两点都经过,它们的贡献都一样,将 \(u, v\) 缩成一个点即可。

不会吧不会吧不会有人这种缩点用 tarjan 吧???

对不起,我紫菜。

你怎么知道我 tarjan 缩点然后调 30 min 弘文了?

并查集维护缩点操作。缩点后跑 DAG 上最长路即可。toposort 可以胜任。

注意是在缩点之后重新编号连边。

时间复杂度 \(O(n\alpha (n) + m)\)。

F

首先设 \(dp_i\) 为到第 \(i\) 格的填色方案。

你会想到一个 naive 的向后转移:

\[dp_i \to dp_{i + k \times a_i}
\]

时间复杂度 \(O(n \frac{n}{V})\)。

有另一个 naive 的转移,是去考虑 \(dp_i\) 从前面的何处转移而来的。

显然 \(dp_j \to dp_i\) 的条件是 \(j + k \times a_j = i\),转换得:\(i \equiv j (\mod a_j)\)。

维护 \(DP_{i, j}\) 表示模 \(i\) 位置为 \(j\) 的方案总和,那么有:

\[dp_i = \sum_{j = 1}^{V} DP_{j, i \mod j}
\]

对 \(DP\) 有懒转移:

\[dp_i \to DP_{a_i, i \mod a_i}
\]

时间复杂度 \(O(nV)\)。

此时两个转移的复杂度跟 \(V\) 相关并且两种状态完全一致,不妨考虑对转移过程根号分治。

钦定阈值 \(B = \sqrt {\max_{i \in [1,n]} \left \{ a_i \right \}}\),若 \(a_i > B\) 则用第一种方式转移,反之用第二种方式转移。

时间复杂度 \(O(n \sqrt V)\)。

G

想到了一个正确概率很大的东西但是会被构造数据卡掉的方法,丢人,不说了。

总结

打得算好的,因为 ABCD 没什么分讨不容易写挂算是有点运气成分,E 想 + 调了接近 60 min,F 口胡出来了但是某些细节还是没注意,G 是数学确实不会做,确实是纯菜了。

后面还是得注重训练码力和刻意记住某些经典的 trick,因为某些题目的关键点就可能是某个 trick 的延申。

ABC 335 VP 总结的更多相关文章

  1. VP记录

    预计在最后的日子里适量VP 简单记录一下 CF 1037 Link 上来秒了ABCD,很快啊 A是二进制拆分,B是一眼贪心,C是一个非常简单且好写的dp D把边遍历顺序按照所需的bfs顺序排序,最后比 ...

  2. 【IOS】将一组包含中文的数据按照#ABC...Z✿分组

    上一篇文章[IOS]模仿windowsphone列表索引控件YFMetroListBox里面 我们一步步的实现了WindowsPhone风格的索引. 但是有没有发现,如果你要实现按照字母排序,你还得自 ...

  3. 在JS中关于堆与栈的认识function abc(a){ a=100; } function abc2(arr){ arr[0]=0; }

    平常我们的印象中堆与栈就是两种数据结构,栈就是先进后出:堆就是先进先出.下面我就常见的例子做分析: main.cpp int a = 0; 全局初始化区 char *p1; 全局未初始化区 main( ...

  4. 学习Python的ABC模块(转)

    http://yansu.org/2013/06/09/learn-Python-abc-module.html 1.abc模块作用 Python本身不提供抽象类和接口机制,要想实现抽象类,可以借助a ...

  5. Android MVP + 泛型,实现了友好VP交互及Activity潜在的内存泄露的优化

    Android MVP粗来已经有段时间了,在项目中我也多多少少用了一些,不得不说代码使用这种模式后,条例确实清晰了好多,整个流程看起来有点各司其职的感觉(另一种的java面向对象的方式). 不过这里是 ...

  6. 将abc的全排列输出

    #include "iostream" using namespace std; void swap(char a[],int i,int j){ char temp; temp= ...

  7. 关于String str =new String("abc")和 String str = "abc"的比较

    String是一个非常常用的类,应该深入的去了解String 如: String str =new String("abc") String str1 = "abc&qu ...

  8. IE9 使用document.getElementsByName("abc") 不能获取到名称相同SPAN元素

    <div name="abc"></div> <input name="abc" type="text" /& ...

  9. 经典String str = new String("abc")内存分配问题

    出自:http://blog.csdn.net/ycwload/article/details/2650059 今天要找和存储管理相关的一些知识,网上搜了半天也没有找到完善的(30%的程度都不到),没 ...

  10. 再谈ABC

    最近一直在看蒋老师那13篇<我的WCF之旅>,终于看完了,看得很慢,记得最初出来工作的时候那时的技术总监建议我去看的,可几个月前我才开始看,看了几个月才把13篇看完.第一篇WCF的博文是我 ...

随机推荐

  1. 推荐一个Elasticsearch ES可视化客户端工具:ES-King

    ES-King:开源免费,一个现代.实用的ES GUI客户端,支持多平台. 下载地址:https://github.com/Bronya0/ES-King 功能清单 详尽的集群信息:节点信息.堆内存占 ...

  2. 【踩坑】VMware Workstation 17.x 中的虚拟机按键反映迟钝

    [踩坑]VMware Workstation 17.x 中的虚拟机按键反映迟钝 目录 [踩坑]VMware Workstation 17.x 中的虚拟机按键反映迟钝 问题描述 笔者环境 解决方法 测试 ...

  3. 【公众号搬运】React-Native开发鸿蒙NEXT(4)

    .markdown-body { line-height: 1.75; font-weight: 400; font-size: 16px; overflow-x: hidden; color: rg ...

  4. 打工人神助攻!2025年最火OKR工具榜单,看板式目标管理必备

    OKR(目标与关键成果)已成为企业目标管理的标准框架,为确保OKR目标可落地,可视化.协作性强的工具需求激增.2025年,哪些OKR工具真正助力团队落地战略?本文盘点当下最火的5款OKR工具,帮助HR ...

  5. python 获取mac地址

    python 获取mac地址 方法一:使用socket库 使用了socket库中的ioctl函数和fcntl模块来获取MAC地址 import socket import fcntl import s ...

  6. 替换GitLab的方案之Gitea

    概述 官网:https://docs.gitea.com/zh-cn/ GitHub地址:https://github.com/go-gitea/gitea Gitea 是一个轻量级的 DevOps ...

  7. Centos7在原有磁盘上磁盘扩容

    如下示例使用VMWare虚拟化软件给虚拟centos7系统进行相关磁盘扩容 1.查看目前磁盘容量 2.VMWare给虚拟系统扩展空间 注意在虚拟系统关机情况下进行 3.查看扩容后磁盘情况 4.创建磁盘 ...

  8. HTML5 e CSS3 入门教程与练习项目

    HTML5 e CSS3 课程材料 这是一个公开的HTML5和CSS3教学资源库,包含完整的课程PDF.实践练习代码和在线演示. 项目特点 结构化学习路径:从基础到高级的模块化课程设计 :laptop ...

  9. java--Hibernate查询、连接池、二级缓存

    hibernate查询 1) Get/load主键查询 2) 对象导航查询 3) HQL查询, Hibernate Query language hibernate 提供的面向对象的查询语言. 4) ...

  10. java--Hibernate框架基础

    SSH框架: Struts框架, 基于mvc模式的应用层框架技术! Hibernate, 基于持久层的框架(数据访问层使用)! Spring, 创建对象处理对象的依赖关系以及框架整合! Hiberna ...