首页 > 其他分享 >9.14 模拟赛

9.14 模拟赛

时间:2024-09-14 15:47:15浏览次数:12  
标签:le cdot text 9.14 序列 长度 sum 模拟

A. 矩形

小 C 有一个 \(n \times n\) 的矩阵,每个格子有一个颜色 \(a_{i, j}\le n\)。

给定 \(k\),你需要计算出对于所有格子,以这个格子为左上角的最大正方形,满足内部颜色数量不超过 \(k\)。

\(n \le 500\)。

枚举左上角 \(i, j\),二分正方形的边长,然后用 \(|a|\) 的复杂度求这个正方形内有多少颜色。复杂度 \(\mathcal O(n^2 |a| \log n)\)。能拿 \(70\)。

考虑如何去掉 \(\log\)。在对角线上双指针即可。

B. 删除序列

很好很好的算答案方式。

小 D 有一个长度为 \(n\) 的序列。如果序列不是非降的,他会选择一个元素删去,直到序列变成非降的,这时停止操作。求操作序列种类数,对 \(10^9+7\) 取模。

两个操作序列不同,当且仅当它们长度不同或者某一次操作删除的元素位置不同。

\(n \le 2000,1 \le a_i \le 10^9\)。

这个问题的难点在于,如果此时序列已经非降了那么此时必须停止。我们考虑如果没有这个限制的问题:

小 D 有一个长度为 \(n\) 的序列。如果序列不是非降的,他会选择一个元素删去,直到序列变成非降的,这时可以选择停止操作,也可以不停止。求操作序列种类数,对 \(10^9+7\) 取模。

我们考虑原序列的任意一个上升子序列对答案的影响,即有多少种将其它元素删除的方式,使得最终整个序列只剩这个子序列。

令这个上升子序列长度为 \(i\)。显然这个的答案是 \((n - i)!\),即其它元素可以任意选择顺序删除。

暴力枚举这个上升子序列仍然是指数复杂度。考虑 DP。

设 \(f(i, j)\) 表示有多少上升子序列以 \(i\) 结尾且长度为 \(j\)。转移显然:

\[f(i, j) = \left\{\begin{matrix}1 &, j=1 \\ \sum_{k=1}^{i-1}[a_k \le a_i]f(k,j-1) &,j \ne 1 \end{matrix}\right. \]

可以用树状数组轻易优化至 \(\mathcal O(n^2 \log n)\)。

考虑统计答案。令 \(g(i) = \sum_{j=1}^i f(j, i)\),即有多少个上升子序列的长度为 \(i\)。那么答案为:

\[\sum_{i=1}^n g(i) \cdot (n - i)! \]

至此我们用 \(\mathcal O(n^2 \log n)\) 的复杂度通过了弱化版。

我们考虑原问题比弱化版的答案少在了哪些地方。即考虑一个上升子序列什么时候产生的贡献变小。

对于一个长度为 \(i\) 的上升子序列 \(s\),如果存在 \(j\) 个长度为 \(i + 1\) 的上升子序列完全包含它,那么当小 D 通过若干次删除操作得到这 \(j\) 个子序列后,游戏应当在此时停止。不难发现只有这种情况会导致 \(s\) 不产生贡献。

所以答案比弱化版少了:

\[\begin{matrix} \sum_{s,j} j \times (n-(i+1))! \\ \Tiny s\text{ is an increasing subsequence of length }i\text{ of }a.\\ \Tiny \text{There are }j\text{ increasing subsequences of length }i+1\text{ that completely contain }s. \end{matrix} \]

暴力枚举 \(s\) 还是指数复杂度。

显然每个 \(s\) 对应的 \(j\) 的和为 \(g(i + 1) \cdot (i + 1)\)。这是因为一个长度 \(i + 1\) 的上升子序列中含有 \(i + 1\) 个这样的 \(s\)。

所以答案为:

\[\sum_{i=1}^n\left[ g(i) \cdot (n-i)! - g(i+1)\cdot (i+1)\cdot(n-i-1)! \right] \]

标签:le,cdot,text,9.14,序列,长度,sum,模拟
From: https://www.cnblogs.com/2huk/p/18414195

相关文章

  • 2024.09.14模拟赛总结
    $T1$似乎是签到题,但是没开$unsigned$$long$$long$挂成$88$分了。直接模拟即可,从后往前考虑,将每个数放到离其最近的位置,不过不会证...#include<bits/stdc++.h>usingnamespacestd;typedefunsignedlonglongLL;constintN=1000010;structwasd......
  • Hume AI 推出 EVI 2 情感模型;OpenAI o1 模型问世,模拟人类思考问题 丨 RTE 开发者日报
       开发者朋友们大家好: 这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。 我们的社区编辑团队会整理分享RTE(Real-TimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个......
  • 必趣CB1核心板、H616主控linux验证IO模拟I2C驱动DS1307时钟芯片
    使用了#include<gpiod.h>内部库作为IO驱动`#ifndef __DS1307_Hdefine__DS1307_HdefineNUM_LEDS21//控制4个GPIO引脚defineCHIPNAME"gpiochip0"//GPIO芯片的名称defineWRITE_CMD 0x00defineREAD_CMD 0x01defineDEV_ADDR0xD0//......
  • PMP模拟考试第94题笔记
    注:obstacle障碍commence 开始priorities 优先事项existingrequirements 现有要求barrier 障碍lackof缺乏在敏捷项目中,障碍(obstacle)指的是阻碍团队按计划推进工作的任何因素。障碍通常会影响团队的生产力和工作进度,因此需要被识别和解决。让我们逐一分......
  • 2024.9.14
    1.如果算法的执行时间不随着问题规模n的增加而增长,即使算法中有上千条语句,其执行时间也不过是一个较大的常数。此类算法的时间复杂度是O(1)。2.访问数组中的元素是常数时间操作,或说O(1)操作。一个算法如果能在每个步骤去掉一半数据元素,如二分检索,通常它就取O(logn)时间。用strc......
  • uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝扫码支付/收付款
    uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝扫码支付/收付款等功能,界面漂亮颜值高,视频商城小工具等,蚂蚁森林种树养鸡农场偷菜样样齐用于视频,商城,直播,聊天等sumer-alipay介绍uniapp精仿支付宝UI界面,首页/理财/消息/生活/口碑/我的,还有模拟支付宝......
  • 9.13 模拟赛(炼石计划 11 月 04日 CSP-S 十连测 #7)
    炼石计划11月04日CSP-S十连测#7【补题】-比赛-梦熊联盟(mna.wang)复盘基本上一眼秒了T1,先写这题。在8:30写完了对拍。用了将近一个小时。然后放到桌面2就没管,一直拍到了比赛结束。T2什么牛魔题面???出题人学过语文吗???T3把题读懂了,但是一直不能正确模拟出样例1,......
  • 大模拟
    P1039[NOIP2003提高组]侦探推理#include<bits/stdc++.h>#definelllonglongusingnamespacestd;constintN=100;intm,n,p;//同学数;说谎数量;证言数量strings[N];//第i个人的名字map<string,int>id;//名字为s的idmap<string,int>Days=......
  • sipp模拟uas发送reinvite
    概述freeswitch是一款简单好用的VOIP开源软交换平台。在更新了sipp模拟update的配置方案之后,我希望对比一下fs对update和reinvite的处理流程。本文档记录sipp的配置方案,该方案中包含了update和reinvite的信令。环境CentOS7.9freeswitch1.10.7sipp.3.6.2方案描述测试......
  • wpf模拟触摸
    ///<summary>///UsethisClassesstaticmethodstoinitializeandinjecttouchinput.///</summary>publicclassNativeMethods{///<summary>///CallthisfirsttoinitializetheTouchInjection!///</summary>......