题解:P4769 [NOI2018] 冒泡排序

news/2025/9/23 19:22:21/文章来源:https://www.cnblogs.com/LUlululu1616/p/19107828

题意:定义一个排列是好的,当且仅当可以通过 \(\frac 1 2\sum_{i=1}^n|i-p_i|\) 次对相邻两个数的交换使得整个排列变成 \(1,2,\cdots n\)。给出一个排列 \(q\),求有多少个排列 \(p\) 满足他是好的且字典序大于 \(q\)

做法:

首先我们先思考没有字典序大于 \(q\) 这个事情怎么做。

我们尝试去给一个排列是好的一个更好描述的充要条件,我们注意到,每个数一定不能走回头路。对于一个数 \(x\),如果有一个更大的数在他的前面,那么他必须向左走,否则向右的话这个数会被那个更大的数往左交换一次;如果有一个更小的数在他的后面,那他必须向右走。所以就要求这个排列里一定不能有长度 \(>2\) 的下降子序列,也就等同于该排列可以划分为不多于两个上升子序列。

那么就很容易想到一个 dp,\(dp_{i,j}\) 代表前 \(i\) 个数,并且目前的最大值为 \(j\),后面有多少种方案,注意这里有个隐藏限制就是 \(i\le j\)

考虑如何转移,有两种方式,一种是选一个更大的数,一种是选小于 \(j\) 的,但是注意,如果选择第二种,那么就一定得选当前最小的数,否则之后填的时候最小的数会形成一个长度至少为三的下降子序列。

所以 \(dp_{i,j} = \sum\limits_{k=j}^n dp_{i+1,k}\)

我们发现这个东西非常像在网格图上移动,所以我们考虑也放到网格图上算路径数量,类似 Catalan 的计数方法,可以得到 \(dp_{i,j} = \binom{2n-i-j-1}{n-i-1}-\binom{2n-i-j-1}{n-j-1}\)

然后就是考虑有排列的限制怎么做,我们枚举一个前缀相等,第 \(p\) 位不相等,我们记 \(mx = \max\limits_{i=1}^{p-1}q_i,mn\) 为目前还没用过的最小的数,那么讨论:

  1. \(mn = q_p\),那么就意味着我们这里只能填 \(>mx\) 的,不可以填比 \(mx\) 更小的数,答案为 \(\sum\limits_{i=mx+1}^ndp_{p,i}\),注意到这个东西等于 \(dp_{p-1,mx+1}\) 可以预处理 \(O(1)\)

  2. \(mn<q_p<mx\),此时还是可以填 \(>mx\) 的,但是因为这里填的不是 \(mn\) 但是又比 \(mx\) 小,所以 \(p+1,p+2,...n\) 这些位置因为有 \([1,p]\) 的前缀,再加上必须填 \(mn\),就不合法了,之后的就可以直接跳过计算。

  3. \(q_p \ge mx\),那么这里只要填大于 \(q_p\) 的都可以。

按上述过程计算即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/913610.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电商网站零售客户丰县建设局规划局网站

目录 安装Pyecharts 安装对应的地图拓展&#xff1a; 准备数据 使用 pyecharts 模块中的 Geo 函数&#xff1a; 使用 pyecharts 模块中的 map 函数&#xff1a; 把一些地域性比较明显的数据显示在一张地图上&#xff0c;远比给别人一个 Excel 文件好得多。 Matplotlib 中…

做宣传图片用什么网站阿里巴巴网站建设的背景

1. 简介 介绍 Kafka 的概述、优势和劣势&#xff0c;以及应用场景。 2. 基本概念 2.1 架构 一个典型的 Kafka 体系架构包括若干 Producer、若干Broker、若干 Consumer&#xff0c;以及一个ZooKeeper集群。 ZooKeeper是Kafka用来负责集群元数据的管理、控制器的选举等操作的…

懒人学做网站箱包网站建设策划报告

本文播放器家园网给大家整理了如何禁止爱奇艺视频方面的内容。爱奇艺pc端和手机端都支持通过频道推荐、观看历史、加入看单、搜索功能快速找到想看的视频。 WFilter有自带的常用协议特征库&#xff0c;可以通过禁止“爱奇艺视频”的协议来禁止爱奇艺视频。步骤如下 1、1.打开…

网站域名有了_网站如何建设建设淘宝网站的意义

利用共享缓存和操作系统缓存利用 RAM Postgres 是一个基于磁盘的数据库&#xff0c;即使您的整个架构是围绕磁盘访问设计的&#xff0c;利用 RAM 也很重要。如果按照人类规模的延迟来判断&#xff0c;这可以将延迟从几天缩短到几分钟&#xff08;图 1&#xff09;。只需看一下…

长沙网站建设接单WordPress广告防屏蔽

打开apache-tomcat-6.0.32/bing/catalina.bat在首行添加&#xff1a; set JAVA_HOMEC:\Program Files\Java\jdk1.6.0_07 就可以了。

厦门网站建设哪家不错推荐怎么用wordpress做模板

在当今的数字化浪潮中&#xff0c;企业对数据的渴求与日俱增。数据不再仅是辅助决策的工具&#xff0c;而是成为推动业务增长的核心动力。自从「数据中台」概念降温后&#xff0c;企业纷纷探寻新的数智化路径。在这个过程中&#xff0c;「数据飞轮」作为一种新兴的理念&#xf…

网站想做个链接怎么做asp.net 3.5网站开发全程解析

目录 引言 Redis GEO命令概述 什么是GEO命令&#xff1f; 主要命令详解 命令应用示例 添加地点信息 查询两地距离 查询附近的城市 实现"查找附近的人"功能 功能需求与实现思路 基本需求 实现思路 命令实现方案 存储用户位置 查询附近的用户 Java代码实…

成品网站nike源码1688旅游宣传网站建设方案

线程简介 在 Java 中&#xff0c;并发机制非常重要。在以往的程序设计中&#xff0c;我们都是一个任务完成后再进行下一个任务&#xff0c;这样下一个任务的开始必须等待前一个任务的结束。Java 语言提供了并发机制&#xff0c;程序员可以在程序中执行多个线程&#xff0c;每一…

详细介绍:内网后渗透攻击--域控制器安全(1)

详细介绍:内网后渗透攻击--域控制器安全(1)2025-09-23 19:12 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: …

2025/9/23

A 用时:1h 预期:100pts 实际:100pts 发现把三个人放在一个状态没有必要,直接分开跑背包再枚举答案即可。 B 用时:2h 预期:100pts 实际:100pts 考试时想了很久的怎么 \(O(n)\) 。 把式子转化为 \(\frac{1}{2}(ma…

Tita:更频繁的绩效考核周期的好处

创建一个能对员工的优势和重点产生有意义的见解的绩效评估周期是一项艰巨的任务,尤其是对一个人来说。(我在跟你说话,人力资源领导。) 不仅如此,这些审查还必须帮助员工的目标与组织的大方向保持一致,量化谁是高绩…

完整教程:DCS+PLC协同优化:基于MQTT的分布式控制系统能效提升案例

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

怎样监测熊掌号绑定成功网站宁波seo排名优化教程

题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先。 输入格式 第一行包含三个正整数 N,M,S,分别表示树的结点个数、询问的个数和树根结点的序号。 接下来 N−1 行每行包含两个正整数x,y,表示 x 结点和 y 结点之间有一条直接连接的边(数据保证可以…

做seo优化产品网站网站无备案

一.汉字的编码 我们知道计算机存储英文字母&#xff0c;标点&#xff0c;数字用的是ascall码&#xff0c;128种用一个字节表示绰绰有余。而汉字远远不止128种&#xff0c;因此汉字需要两个字节表示。 1.gbk编码中汉字占两个字节。 2.utf-8中&#xff0c;一个汉字占三个字节。…

网站图标只做爱狼戈网站建设

在OpenCV中&#xff0c;滤波器用于对图像进行平滑、锐化、边缘检测等操作。以下是一些常用的滤波器及其在OpenCV中的Python代码示例&#xff1a; 均值滤波器&#xff08;平滑图像&#xff09;&#xff1a; import cv2 import numpy as np# 读取图像 image cv2.imread(path_t…

如何修改网站标题wordpress 标签前缀

局部敏感哈希&#xff08;LSH&#xff09;技术是快速近似最近邻&#xff08;ANN&#xff09;搜索中的一个关键方法&#xff0c;广泛应用于实现高效且准确的相似性搜索。这项技术对于许多全球知名的大型科技公司来说是不可或缺的&#xff0c;包括谷歌、Netflix、亚马逊、Spotify…

网站推广方法及特点个人跨境电商怎么做

看的过程中&#xff0c;一直在看时间&#xff0c;只剩30分钟了&#xff0c;20分&#xff0c;15分了&#xff0c;主人公怎么还没发达。 因为那种痛苦&#xff0c;绝望&#xff0c;沮丧&#xff0c;真的可以隔着屏幕传递过来。 你会带着儿子住厕所么&#xff1f; 你会拼了老命赶时…

如何提高网站的访问量培训网站平台如何推广

1.内部类 内的五大成员&#xff1a;属性、方法、构造方法、代码块、内部类 解释&#xff1a;在一个类的里面&#xff0c;再定义一个类。举例:在A类的内部定义B类&#xff0c;B类就被称为内部类注意&#xff1a;内部类表示的事物是外部类的一部分&#xff0c;内部类单独出现没…

怎么上传网站iis绥中做网站

基础知识 渐变&#xff1a;gradient 在两个或者多个颜色之间显示平稳过度。由浏览器生成。 线性渐变&#xff1a;line-gradient(过渡方向&#xff0c;初始颜色&#xff0c;结束颜色)。注意过渡方向默认从上到下。 1、支持多颜色渐变&#xff0c;多个值&#xff0c;就是从多个…

重庆建设工程招标信息网seo网站内容优化

您是否遇到过这个令人难以置信的错误&#xff0c;想知道如何解决它&#xff1f; 让我们浏览一下这篇文章&#xff0c;研究如何解决表达式Java非法开头错误。 这是一个动态错误&#xff0c;这意味着编译器会发现某些不符合Java编程规则或语法的内容。 初学者大多会遇到Java中的…