首页 > 其他分享 >数论分块性质优化DP状态

数论分块性质优化DP状态

时间:2024-02-22 21:03:57浏览次数:27  
标签:乘积 格子 分块 数论 路径 DP

6311. mobitel

给定一个 r 行 s 列的矩阵,每个格子里都有一个正整数。
问如果从左上角走到右下角,且每次只能向右或向下走到相邻格子,那么使得路径上所有数的乘积不小于 n 的路径有多少条?

对于 100% 的数据,1<=r,s<=300,1<=n<=10^6 ,矩阵中的数不超过10^6。

so,一个普通的思想就是设f[i,j,k]表示到(i,j),乘积为k的总方案

然后发现不仅TLE,还MLE,how to deal with it???

We can find that,there are lots of useless states.So why not cut them down.

我们设f[i,j,k]为当前乘积再乘k就大于n。

然后我们惊讶的发现,k的数量只有\(2\sqrt n\)个,证明可见数论分块

然后简单处理就可以DP了

标签:乘积,格子,分块,数论,路径,DP
From: https://www.cnblogs.com/zhy114514/p/18028155

相关文章

  • 单调栈优化DP
    当有形如\(f_i=min_{j=0}^{l(i)}f_j+w转移代价\)我们就可以使用单调栈优化DP为什么不用单调队列???当有形如\(f_i=min_{j=l(i)}^{i-1}f_j+w转移代价\)我们就可以使用单调队列优化DP至于为毛,就可以从它的工作原理上去分析6305.最小值\(dp_i=min_{j=0}^{i-1}g_j+f(min_{x=j+1......
  • 动态DP
    动态DP最大子段和考虑设\(f_i\)表示以i为结尾的最大子段和,\(g_i\)表示i以内的最大子段和\[f_i=\max(f_{i-1}+a_i,a_i)\]\[g_i=\max(g_{i-1},f_i)\]然后非常容易将每个权值变成一个矩阵,然后每次修改就变成修改一个矩阵用线段树维护即可树上最大独立集(没有上司的舞会带修)考......
  • P3870 分块题解
    这篇题解有点问题(分块标记处),但现在不想修,等有空修吧link分块是一种很神奇的暴力,学了它就会觉得什么都可以用分块做。分块的主要思想就是整块快速查询,散块暴力查询。比如说,分块可以在\(O(q\sqrt{n}+n)\)的时间复杂度内解决线段树模板题。回到本题,显然我们可以用每个块维护......
  • 基于STM32F407MAC与DP83848实现以太网通讯二(DP83848硬件配置以及寄存器)
    参考内容:DP83848数据表一、PHYDP83848功能模块图                     DP83848的硬件模块主要为:MII/RMII/SNI INTERFACES:用于与MAC数据传输的MII/RMII/SNI接口Transmit BLOCK:数据发送模块,将从外部MAC(例如STM32ETH外设的MAC)接收......
  • 基于STM32F407MAC与DP83848实现以太网通讯一(STM32以太网(ETH)外设)
    STM32F4xx可以通过以太网按照IEEE802.3-2002标准发送和接收数据。支持与外部物理层(PHY)相连的两个工业标准接口:默认情况下使用的介质独立接口(MII)(在IEEE802.3规范中定义)和简化介质独立接口(RMII)。具体的以太网(ETM)特性参考:STM32F4xx中文参考手册这里将重要的地方进......
  • 玉蟾宫(悬线dp)
    求最大子矩阵一般用采用悬线法(包好用的牢底)悬线法:[以这道题为例,我们将R称为障碍格子,将F称为非障碍格子]我们选择任意一个非障碍格子,引出三条直线:左直右直上直随后从这个点出发,分别向上左右延申直到遇到障碍格我们要求上悬线尽可能高的面积,但有可能上一......
  • linux常用命令--dpkg
    dpkg是Debain系列linux发行版本中的重要命令,用于管理软件包,安装、配置、卸载等等。更多介绍请参考官方文档:www.dpkg.orgdpkg常用参数:dpkg-ipackage_file.deb安装指定软件包 dpkg-igvim.debdpkg-rpackage_file.deb删除以安装的软件包,但保留配置文件 dpkg-rgv......
  • #根号分治,分块,dfs序#洛谷 7710 [Ynoi2077] stdmxeypz
    题目传送门分析首先把距离变成深度,用dfs序转成区间问题,考虑分块,散块直接改问题是整块,如果模数比较大,可以以深度为第一维下标差分标记,这样查询时就可以前缀和知道答案如果模数比较小,那么给该块打标记,查询时枚举模数即可,然后块长取1000,模数阈值取300,就能尽量减少时间代码#in......
  • dp 学习笔记 (2024/2/22 - )
    计数[ARC107D]NumberofMultisets[ARC104D]MultisetMean大值域限制偏序计数[CF1295F]GoodContest[ARC104E]RandomLIS......
  • Qt QWindowsWindow::setGeometryDp: Unable to set geometry问题
    总结原因:由于子窗口和父窗口的大小关系不健康,导致父窗口resize失败,失败后会自定义大小解决方法:首先,修改父窗口尺寸,保证其大小可以容纳子部件,可以使用setFixSize()之类的函数修改父窗口尺寸。其次,一定要保证修改父窗口尺寸的函数是放在窗口布局代码之前,如图,我的setIn......