首页 > 其他分享 >2023.10.31 USACO 2020 选做.md

2023.10.31 USACO 2020 选做.md

时间:2023-10-31 21:48:51浏览次数:37  
标签:md 选做 前缀 31 矩阵 端点 ans 分割线 dp

P6009 Non-Decreasing Subsequences P

由于值域很小,dp 的转移不难想到写成矩阵的形式。
考虑维护矩阵的前缀积和逆前缀积。
然而单次的矩阵乘已经达到 \(O(k^3)\) 超时了,但是我们发现其实矩阵非 \(0\) 的位置是 \(O(k)\) 个的,所以复杂度降到了 \(O(k^2)\).
关于逆矩阵,我们无需高斯消元,找规律发现非零位置也是 \(O(k)\) 个的。
如果前缀积 \(pre1_i=pre1_{i-1}\times A\),那么注意逆前缀积是 \(pre2_i=A^{-1}\times pre2_{i-1}\).
这是因为矩阵只满足结合律。

P6142 Delegation P

考虑二分答案 \(K\)。
由于一个点往上只能伸出一条链,如果我们贪心的话一定是伸出最长的链。
考虑把儿子身上来的所有链用 multiset 维护。
如果要把若干条链两两匹配,考虑每次拉出最短的链,我们需找到最小的但是满足长度 \(\ge k\) 的链匹配。
在 multiset 上二分即可。最后剩下来那个就是向上伸的。

P6144 Help Yourself P

首先套路的使用斯特林数拆解 \(k\) 次幂,我们只需要求出所有 \(i\le k\) 的 \(C_{ans}^i\) 的和就行了。
按照左端点排序。考虑使用线段树维护 \(dp_i\) 数组表示当前最右边是 \(i\) 的答案。
设当前区间是 \([l,r]\),对于右端点小于 \(l\) 的,那么增加了一个连通块,用 \(C_{ans}^i=C_{ans-1}^{i-1}+C_{ans-1}^i\) 更新。
对于右端点 \(\in[l,r]\) 的,可以对 \(r\) 做贡献,直接区间求和。
对于右端点大于 \(r\) 的,此时贡献不能算在 \(r\) 上,方案数都乘上 \(2\) 即可。
简单的线段树操作。

P6275 Sprinklers 2: Return of the Alfalfa P

考虑两种种物一定被一条 \((0,0)\) 到 \((n,m)\) 的分割线分成两边。
分割线的拐角一定被放置洒水器。
那么剩下的点都是放或不放,有 \(2\) 种可能。
直接设 \(dp_{i,j,0/1}\) 表示分割线到 \((i,j)\),当前是向右/向下,\(i\) 行上面的总的贡献。
简单的转移。

标签:md,选做,前缀,31,矩阵,端点,ans,分割线,dp
From: https://www.cnblogs.com/Simon-Gao/p/17801620.html

相关文章

  • AtCoder Beginner Contest(abc) 312
    B-TaKCode难度:⭐题目大意题目定义一种矩阵X:该矩阵的是一个长度为9的由黑白色块组成正方形矩阵;该矩阵的左上角和右下角都是一个3*3的黑色矩阵(总共18个),这两个黑色矩阵外面(边缘不算)包围一圈白色色块(总共14个);现在一个n*m的黑白矩阵,问这个大矩阵中有多少......
  • 每日总结10.31
    Flink的优势包括:高度灵活的流式窗口,同时支持高吞吐、低延迟、高性能,支持有状态计算流数据的特征:注重数据的整体价值,不过分关注个别数据,数据快速持续到达流计算的处理流程包括:数据实时采集,实时查询服务,数据是实时计算典型的事件驱动型应用包括:异常检测,反欺诈,业务流程监控,基于规则......
  • 10.31 限滑
    我有异议证第一个ST-Link2到了,甚至没有调试针孔,只提供了焊盘....麻辣隔壁我还得用手按着才能刷程序。另一个GD32F103的ST-Linkv2昨天发货顺丰空运来的,今天应该能到。两家都是深圳的。到时候先试试GD32的能不能串口刷,能的话就先做手上这个STM32的。有没有人要预......
  • 无涯教程-Docker - CMD命令
    Docker有许多指令命令。这些是放置在DockerFile中的命令。CMD指令该命令用于在执行容器时在运行时执行命令。CMDcommandparam1command -这是启动容器时要运行的命令。param1    - 这是输入到命令的参数。该命令将相应执行。在我们的示例中,我们将输入一......
  • 【Django-DRF】多年积累md笔记 0基础到高手. 第(3)篇:使用Django开发REST 接口
    本文从分析现在流行的前后端分离Web应用模式说起,然后介绍如何设计RESTAPI,通过使用Django来实现一个RESTAPI为例,明确后端开发RESTAPI要做的最核心工作,然后介绍DjangoRESTframework能帮助我们简化开发RESTAPI的工作。完整版笔记直接地址:请移步这里共5章,24子模块,总计1.7......
  • 2023年10月31日阅读笔记
    《代码整洁之道》书中介绍了一些编程原则和实践,如DRY(不要重复自己)、单一职责原则(SRP)、开闭原则(OCP)等,这些原则有助于编写更好的代码。不仅如此还强调了良好的代码质量对于软件开发的重要性。良好的代码不仅仅是能够运行的代码,还应该易于理解和维护。我认为书中的一个观点特别值得......
  • 关于有很多好题写了但是不知道放哪所以就放在同一个博客里了md这标题怎么这么长这件事
    不分难度.我只是想把一些好玩或者有思维含量的题塞进来.InversionCounting我是不会告诉你其实我是因为这题标签有平衡树才做的.这题标签有平衡树.但是并不需要平衡树.这题操作时在反转区间嘛,然后求逆序对.容易发现,实际上有变化的逆序对只有完全在这个区间内的.换句话说,......
  • 2.62 print("学号:3137")
     ......
  • lamdba表达式
    lamdba表达式是为了避免匿名内部类定义过多为什么要使用lambda表达式避免匿名内部类定义过多可以让你的代码看起来很简洁去掉了一堆没有意义的代码,只留下核心的逻辑。packagecom.xh.Thread;/***lamdba表达式事实上是内部接口**/publicclassLamdbaTest{ //3,定义一......
  • 2023.10.31
    运行超市抹零结账行为代码如下:1print("3107")2money=39.87+24.47+78.07#计算总金额3money_str=str(money)4print("商品总金额:"+money_str)5print("实收金额:{:.0f}".format(money))#进行抹零行为结果如下:计算学生成绩的分差和平均分代码如下:......