uoj316【NOI2017】泳池】的更多相关文章

[NOI2017]泳池 实在没有思路啊~~~ luogu题解 1.差分,转化成至多k的概率减去至多k-1的概率.这样就不用记录“有没有出现k”这个信息了 2.n是1e9,感觉要递推然后利用数列的加速技巧 f[n]表示宽度为n的值,然后枚举最后一个连续高度至少为1的块,dp数组辅助 神仙dp:dp[i][j]表示宽度为i,j的高度出现限制,任意矩形不大于k的概率 设计确实巧妙:宽度利于转移给f,高度利于自己的转移 dp数组转移:枚举第一个到达j的限制的位置,这样,前面部分限制至少是j+1,后面至少…
BZOJ4944: [Noi2017]泳池 题目背景 久莲是个爱玩的女孩子. 暑假终于到了,久莲决定请她的朋友们来游泳,她打算先在她家的私人海滩外圈一块长方形的海域作为游泳场. 然而大海里有着各种各样的危险,有些地方水太深,有些地方有带毒的水母出没. 她想让圈出来的这一块海域都是安全的. 题目描述 经过初步的分析,她把这块海域抽象成了一个底边长为 NN 米,高为 10011001 米的长方形网格. 其中网格的底边对应着她家的私人海滩,每一个 1*1 的小正方形都代表着一个单位海域. 她拜托了她爸…
[BZOJ4944][NOI2017]泳池(线性常系数齐次递推,动态规划) 首先恰好为\(k\)很不好算,变为至少或者至多计算然后考虑容斥. 如果是至少的话,我们依然很难处理最大面积这个东西.所以考虑答案至多为\(k\)的概率,再减去至多为\(k-1\)的概率就是最终的答案. 发现要求的东西必须贴着底边,所以对于每一列而言我们需要考虑的就是选定区间的最低的那个不安全的格子的行号,再乘上底边的长度. 所以考虑设\(f[n]\)表示底边长度为\(n\)的答案,即确定底边长度为\(n\)时,面积小于等…
题目描述 有一个长为\(n\),高为1001的网格,每个格子有\(p\)的概率为1,\((1-p)\)的概率0,定义一个网格的价值为极大的全一矩形,且这个矩形的底要贴着网格的底,求这个网格的价值为\(K\)的概率. 题解 我们可以考虑设一个\(dp\). 我们定义每一列的高度为这一列最高的位置满足这个位置及以下的位置都为1. 设\(dp[i][j]\)表示已经做到了前\(i\)列,此时最低的位置为\(j\)并且此时的最大价值不超过\(K\)的概率. 可以看出这是一个前缀和的形式,我们需要在最外面…
题目分析: 用数论分块的思想,就会发现其实就是连续一段的长度$i$的高度不能超过$\lfloor \frac{k}{i} \rfloor$,然后我们会发现最长的非$0$一段不会超过$k$,所以我们可以弄一个长度为$i$的非$0$段的个数称为"元",然后用"元"去递推. 这个"元"的求法用DP:令数论分块之后第$i$段的长度为$g[i]$ $$f[i][j] = f[i-1][j] + f[i-1][k]*f[i][j-k-1]*g[i]$$ $$…
Cayley–Hamilton theorem - Wikipedia 其实不是理解很透彻,,,先写上 简而言之: 是一个知道递推式,快速求第n项的方法 k比较小的时候可以用矩阵乘法 k是2000,n是1e18呢? 思想:求出开始的k项的每一项对第n项的贡献 特征多项式,, fibonacci: f[n]=f[n-1]+f[n-2] x^2=x+1 推广: f[n]=af[n-1]+bf[n-2] x^2=ax+b*1 再推广: f[n]=a1f[n-1]+a2f[n-2]+...+akf[n-…
[NOI2010] [NOI2010]海拔 高度只需要0/1,所以一个合法方案就是一个割,平面图求最小割. [NOI2010]航空管制 反序拓扑排序,每次取出第一类限制最大的放置,这样做答案不会更劣. 考虑如何求每一个的最早时间,同上述拓扑排序,该元素不入队,当无点可拓展时就是最早时间. [NOI2010]超级钢琴 对每一个左端点维护当前取出了前几大的右端点,用堆+主席树维护. [NOI2011] [NOI2011]兔农 不难发现数列模意义下的进程是:斐波那切数列,首项回归0(减一操作),斐波那…
题目链接 \(S=k\)可以拆成\(S\le k\)减去\(S\le k-1\).用\((i,j)\)表示第i行第j列. 设\(g(i,j)\)表示前i行前j列都安全其他未知满足条件的概率,\(h(i,j)\)表示前i行前j列是安全的但是\((i+1,j)\)是危险的,其他未知,满足条件的概率.当\(i*j>k\)时两个数组的值都是0. \(g(i,j)\)的转移可以在\(i+1\)行枚举最右的危险格子来转移:\(g(i,j)=\sum_{k=0}^jh(i,k)*g(i+1,j-k)\).\(…
传送门 一道 \(DP\) 好题 设 \(q\) 为一个块合法的概率 套路一恰好为 \(k\) 的概率不好算,算小于等于 \(k\) 的减去小于等于 \(k-1\) 的 那么设 \(f_i\) 表示宽为 \(i\) 的合法的泳池面积都小于等于 \(k\) 的概率 设 \(g_i\) 表示宽为 \(i\) 的合法的泳池面积都小于等于 \(k\) 且最下面一行都合法的概率 那么考虑转移 \(f\) 套路二强制前面的满足一定的性质,后面接一段不满足的 首先 \(f_i+=g_i\),然后枚举放一个不合…
$n \leq 1e9$底边长的泳池,好懒啊泥萌自己看题吧,$k \leq 1000$.答案对998244353取膜. 现在令$P$为安全,$Q$为危险的概率.刚好$K$是极其不好算的,于是来算$\leq K$,然后用$calc(K)-calc(K-1)$解决.$f(i,j)$--$i$行$j$列的矩形中,第$i$行有危险,前$i-1$行都没有危险,而最大矩形$\leq K$的概率,枚举最后一个危险格递推,$f(i,j)=\sum_{k=0}^{j-1}f(i,k)P^{i-1}Qg(i,j-k…