AT2366-[AGC012F]Prefix Median【dp】

正题

题目链接:https://www.luogu.com.cn/problem/AT2366


题目大意

有一个长度为2n−12n-12n1的序列aaa,你可以将其重新排列,定义bib_ibia1∼2i−1a_{1\sim 2i-1}a12i1的中位数。

询问有多少种不同的可能的bbb序列。

1≤n≤501\leq n\leq 501n50


解题思路

先假设aaa中所有数字都不同,我们去考虑一下bbb的限制。

相当于我们每次在aia_iai中加入两个数字x,yx,yx,y,然后如果x,yx,yx,y都小于最后一个bbb则新的bbb取它在aaa中的前驱,如果都大于则取后继,如果一大一小则不动。

基于这个限制我们得到的条件是每次bib_ibi加入数字之后的排名只能变动一位,这是充要的。

考虑去形式化这个条件,将aaa排序后,我们有:

  • an−i+1≤bi≤an+i−1a_{n-i+1}\leq b_i\leq a_{n+i-1}ani+1bian+i1
  • 不存在j<ij<ij<i满足bi<bj<bi+1b_i<b_j<b_{i+1}bi<bj<bi+1bi+1<bj<bib_{i+1}<b_j<b_ibi+1<bj<bi

这样我们其实并不需要考虑aaa填的情况,如果bbb一次向外跨过了很多个aaa,那么我们可以视这些aaa此时还没有加入,我们只需要限制往内跨的情况出现就好了。

不过这第二个条件依旧不好处理,我们考虑倒着做,那当我们确定一个bib_ibibi+1b_{i+1}bi+1之后,相当于(bi,bi+1)(b_i,b_{i+1})(bi,bi+1)之间的数字就都不能选择了。

考虑dpdpdp,设fi,l,rf_{i,l,r}fi,l,r表示目前填了iii个,对于现在的bib_ibi来说,左边还剩下lll个位置,右边还剩下rrr个位置。

然后每次加入两边的aia_iai,如果al=al+1a_{l}=a_{l+1}al=al+1,那么我们将其视为同一个,右边同理。

时间复杂度:O(n4)O(n^4)O(n4)


code

#include<cstdio>
#include<cstring>
#include<algorithm>
#define ll long long
using namespace std;
const ll N=110,P=1e9+7;
ll n,m,a[N],f[N][N][N];
signed main()
{scanf("%lld",&n);m=2*n-1;for(ll i=1;i<=m;i++)scanf("%lld",&a[i]);sort(a+1,a+m+1);f[n][0][0]=1;for(ll i=n-1;i>=1;i--){ll l=i,r=2*n-i;ll dl=(a[l]!=a[l+1]),dr=(a[r]!=a[r-1]);for(ll l=0;l<=m;l++)for(ll r=0;r<=m;r++){if(!f[i+1][l][r])continue;(f[i][l+dl][r+dr]+=f[i+1][l][r])%=P;for(ll k=0;k<l+dl;k++)(f[i][k][r+dr+1]+=f[i+1][l][r])%=P;for(ll k=0;k<r+dr;k++)(f[i][l+dl+1][k]+=f[i+1][l][r])%=P;}}ll ans=0;for(ll i=0;i<=m;i++)for(ll j=0;j<=m;j++)(ans+=f[1][i][j])%=P;printf("%lld\n",ans);return 0;
}

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

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

相关文章

专题突破三之并查集Ⅱ——星球大战,In Touch,方格染色,Junk-Mail Filter,关押罪犯,Silver Woods,Must Be Rectangular!

文章目录[JSOI2008]星球大战In Touch方格染色Junk-Mail Filter[NOIP2010 提高组] 关押罪犯Silver WoodsMust Be Rectangular![JSOI2008]星球大战 source 非常套路的&#xff0c;正着打击星球&#xff0c;逆着就是添加星球以及关系&#xff0c;并查集维护此时连通块个数 就是…

模板:整体二分

所谓整体二分&#xff0c;就是对整体进行二分 &#xff08;逃&#xff09; 前言 又是一个狂艹树套树的小清新分治算法 但是树套树不需要动脑啊 整体二分有一些比较重要的条件&#xff1a; 修改对判定答案的贡献互相独立&#xff0c;修改之间互不影响效果修改如果对判定答案有…

JavaWeb --第二章 Tomact详情

JavaWeb --第二章 Tomact详情 文章目录Tomcat安装TomcatTomcat启动和配置配置发布一个web网站Tomcat 安装Tomcat 去官方下载 https://tomcat.apache.org Tomcat启动和配置 文件夹作用&#xff1a; 启动/关闭 Tomcat&#xff1a; 文件夹bin/startup.bat 开启 网址&#x…

P8352-[SDOI/SXOI2022]小N的独立集【dp套dp】

正题 题目链接:https://www.luogu.com.cn/problem/P8352 题目大意 给出一棵树&#xff0c;每个点的权值是[1,k][1,k][1,k]之间的一个数&#xff0c;对于i∈[1,nk]i\in[1,nk]i∈[1,nk]求令这棵树的最大独立集权值为iii的方案数。 1≤n≤1000,1≤k≤51\leq n\leq 1000,1\leq k\…

开源的类似于Apache ab的压力测试命令行工具SuperBenchmarker

SuperBenchmarker 是ㄧ个开源的类似于Apache ab的压力测试命令行工具。可以在 .NET 4.52 或者 .NET Core 2.0 平台上运行。可支持Get、Post、Put、Delete这些调用方式&#xff0c;调用时能指定Concurrent user、Request数、Header template…等。可以从Github、Chocolatey这两种…

CodeForces:643(VK cup)

文章目录前言CF643A Bear and ColorsDescription\text{Description}DescriptionSolution\text{Solution}SolutionDescription\text{Description}DescriptionCF643B Bear and Two PathsDescription\text{Description}DescriptionSolution\text{Solution}SolutionCode\text{Code}…

一二三系列之优先队列、st表——Battle,Heapsort,A Magic Lamp

文章目录BattleHeapsortA Magic LampBattle source 如果怪兽先死&#xff0c;那么英雄血量不足也没关系 反悔贪心 每次都先杀怪兽再说&#xff0c;如果血量不够了&#xff0c;就倒回去从怪兽打出伤害由高到低反悔&#xff0c;选择抵御或者加血&#xff0c;肯定哪个加的更多…

JavaWeb --第三章 HTTP协议详解

JavaWeb --第三章 HTTP协议详解 Http 什么是HTTP HTTP&#xff1a; 超文本传输协议&#xff08;Hypertext Transfer Protocol&#xff0c;HTTP&#xff09;是一个简单的请求-响应协议&#xff0c;它通常运行在TCP之上。 文本&#xff1a;html&#xff0c;字符串&#xff0c…

AT2382-[AGC015D]A or...or B Problem

正题 题目链接:https://www.luogu.com.cn/problem/AT2382 题目大意 询问在[L,R][L,R][L,R]中选取一个或多个数&#xff0c;将它们按位或后能得到多少种不同的结果。 1≤L≤R<2601\leq L\leq R<2^{60}1≤L≤R<260 解题思路 我们先把高位的LLL和RRR都有的111都删除&a…

数据结构一【树状数组】普通、二维、离线树状数组的(单点修改,单点查询,区间修改,区间查询)模板及应用例题总结

文章目录树状数组lowbit线段树与树状数组单点修改区间查询区间修改区间求和二维树状数组离线树状数组例题POJ&#xff1a;starsMooFest[SDOI2009]HH的项链Turing TreeCounting SequencesZip-line树状数组 用于快速高效的计算与前缀和相关的信息 lowbit int lowbit( int i ) …

如何优雅的利用Windows服务来部署ASP.NET Core程序

上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法&#xff0c;其中有一种方式是通过Windows服务来进行部署&#xff0c;这样既可以做到开启自启动&#xff0c;又不会因为iis的反向代理而损失部分性能。但是美中不足的是需要借助第三方软件nssm来进行&#xff0c;那么…

JavaWeb --第四章Maven详解

JavaWeb --第四章Maven详解 文章目录MavenMaven架构管理工具下载安装Maven配置环境变量阿里云镜像本地仓库在IDEA中使用Maven创建一个普通的Maven项目在IDEA中标记文件夹功能在IDEA中配置tomcatpom文件IDEA操作解决遇到的问题Maven 为什么要学这个技术&#xff1f; 在javaweb…

P3242 [HNOI2015] 接水果(整体二分、扫描线、dfs序)

解析 一道有点毒瘤的题 也是一道感觉真的可以出现在考场上的很综合的题 做的还可以 除了一开始把盘子和水果看反白写了各树套树之外 为什么盘子是水果的子路径啊 由于是做专题爬过来的多次询问区间第k小&#xff0c;想到整体二分 那么重点就是子路径的判定问题 发现&#xff…

UOJ#748-[UNR #6]机器人表演【dp】

正题 题目链接:https://uoj.ac/problem/748 题目大意 有一个长度为nnn的010101序列&#xff0c;然后ttt次插入一个000和一个111&#xff0c;要求000在111前面&#xff0c;求最终能得到多少种本质不同的串。 1≤n,t≤3001\leq n,t\leq 3001≤n,t≤300 解题思路 我们考虑一个n…

夯实基础项目工程之图论——Uncle Bogdan and Country Happiness,Graph Coloring,How Many Paths?,Array Differentiation

文章目录做题情况项目报告Uncle Bogdan and Country HappinessGraph ColoringHow Many Paths?Array Differentiation做题情况项目报告 T1,T3T1,T3T1,T3一眼题&#xff0c;在实现上&#xff0c;T3T3T3耗时略长&#xff08;有些情况未考虑到位&#xff09; T4T4T4感觉题&#xf…

Codeforces Round #716 (Div. 2)

Codeforces Round #716 (Div. 2) CodeForces 1514 题号题目知识点难度APerfectly Imperfect ArrayBAND 0, Sum BigCProduct 1 Modulo NDCut and StickEBaby Ehab’s Hyper Apartment

用StyleCop规范团队代码

前言编码风格&#xff0c;每个人都是有不同的特点&#xff0c;风格各异&#xff0c;而且一个人在不同的时期&#xff0c;编码风格的差异也可能是非常大的&#xff0c;好比学生时代&#xff0c;刚工作的时候&#xff0c;工作一段时间后等。在一个团队中&#xff0c;或一个项目中…

CodeForces:103(div1)104(div2)

文章目录前言CF104A BlackjackDescription\text{Description}DescriptionSolution\text{Solution}SolutionCode\text{Code}CodeCF103A Testing Pants for SadnessDescription\text{Description}DescriptionSolution\text{Solution}SolutionCode\text{Code}CodeCF103B CthulhuDe…

UOJ#749-[UNR #6]稳健型选手【贪心,分治,主席树】

正题 题目链接:https://uoj.ac/problem/749 题目大意 如果有序列aaa&#xff0c;你每次取走一个数字后然后这个序列最前面的数字会被别人取走&#xff0c;直到序列为空。此时f(a)f(a)f(a)表示你最大能取走的权值和。 给出一个长度为nnn的序列aaa&#xff0c;qqq次询问区间[l…

A. And Then There Were K

A. And Then There Were K 题意&#xff1a; 给你一个n&#xff0c;让你求一个k&#xff0c;使得满足下列式子&#xff1a; n & (n-1) & (n-2) &…&(k) 0 问k最小是多少&#xff1f; 题解&#xff1a; 找规律 比如n的二进制为&#xff1a;1111 那么n-1就是…