\(\mathcal{Description}\)

  Link.

  给定序列 \(\{a_{2n-1}\}\),将 \(\{a_{2n-1}\}\) 按任意顺序排列后,令序列 \(b_i\) 为前 \(2i-1\) 个数的中位数。求 \(\{b_n\}\) 的个数,对 \(10^9+7\) 取模。

  \(n\le50\)。

\(\mathcal{Solution}\)

  \(\{b_n\}\) 有一个很 naive 的性质:\(b_n\) 是常数,是 \(\{a_{2n-1}\}\) 的中位数。

  考虑扩展这一性质,从后往前,\(b_{i+1}\) 所对应的 \(a\) 序列删去两个数后就得到 \(b_i\) 所对应的序列。显然,\(b_i\) 要么是 \(b_{i+1}\) 在新序列的前驱或后记,要么不变。

  形式地,有性质:

\[(\forall i\in[1,n))(\not\exists j\in[1,n])(b_i<b_j<b_{i+1}\lor b_{i+1}<b_j<b_i)
\]

  接着,考虑到中位数本身的性质,将 \(\{a_{2n+1}\}\) 升序排列后,可以确定每个 \(b_i\) 的范围:

\[a_i\le b_i\le a_{2n-i}
\]

  那么设状态 \(f(i,j,k)\) 表示确定前 \(i\) 位,中位数左边有 \(j\) 个数可用,右边有 \(k\) 个数可用的方案数。转移就……看代码吧 www~

\(\mathcal{Code}\)

#include <cstdio>
#include <algorithm> const int MAXN = 50, MAXM = 100, MOD = 1e9 + 7;
int n, m, a[MAXM + 5], f[2][MAXM + 5][MAXM + 5]; inline void addeq ( int& a, const int b ) { if ( ( a += b ) >= MOD ) a -= MOD; } int main () {
scanf ( "%d", &n ), m = 2 * n;
for ( int i = 1; i < m; ++ i ) scanf ( "%d", &a[i] );
std::sort ( a + 1, a + m );
f[0][0][0] = 1;
for ( int i = n, t = 0; i > 1; -- i, t ^= 1 ) {
bool dl = a[i] ^ a[i - 1], dr = a[m - i + 1] ^ a[m - i];
for ( int j = 0; j < m; ++ j ) {
for ( int k = 0; k < m; ++ k ) {
int& cur = f[t][j][k];
if ( ! cur ) continue;
addeq ( f[t ^ 1][j + dl][k + dr], cur );
for ( int p = 0; p < j + dl; ++ p ) addeq ( f[t ^ 1][p][k + dr + 1], cur );
for ( int p = 0; p < k + dr; ++ p ) addeq ( f[t ^ 1][j + dl + 1][p], cur );
cur = 0;
}
}
}
int ans = 0;
for ( int i = 0; i < m; ++ i ) {
for ( int j = 0; j < m; ++ j ) {
addeq ( ans, f[n & 1 ^ 1][i][j] );
}
}
printf ( "%d\n", ans );
return 0;
}

Solution -「AGC 012F」「AT 2366」Prefix Median的更多相关文章

  1. Solution -「CTS 2019」「洛谷 P5404」氪金手游

    \(\mathcal{Description}\)   Link.   有 \(n\) 张卡牌,第 \(i\) 张的权值 \(w_i\in\{1,2,3\}\),且取值为 \(k\) 的概率正比于 \ ...

  2. 「题解」「美团 CodeM 资格赛」跳格子

    目录 「题解」「美团 CodeM 资格赛」跳格子 题目描述 考场思路 思路分析及正解代码 「题解」「美团 CodeM 资格赛」跳格子 今天真的考自闭了... \(T1\) 花了 \(2h\) 都没有搞 ...

  3. 【翻译】西川善司的「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,后篇

    http://www.4gamer.net/games/216/G021678/20140714079/     连载第2回的本回,  Arc System Works开发的格斗游戏「GUILTY G ...

  4. Android内存管理(4)*官方教程 含「高效内存的16条策略」 Managing Your App's Memory

    Managing Your App's Memory In this document How Android Manages Memory Sharing Memory Allocating and ...

  5. SSH连接时出现「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」解决办法

    用ssh來操控github,沒想到連線時,出現「WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!」,後面還有一大串英文,這時當然要向Google大神求助 ...

  6. 「Windows MFC 」「Edit Control」 控件

    「Windows MFC 」「Edit Control」 控件

  7. 「ZJOI2019」&「十二省联考 2019」题解索引

    「ZJOI2019」&「十二省联考 2019」题解索引 「ZJOI2019」 「ZJOI2019」线段树 「ZJOI2019」Minimax 搜索 「十二省联考 2019」 「十二省联考 20 ...

  8. Loj #6069. 「2017 山东一轮集训 Day4」塔

    Loj #6069. 「2017 山东一轮集训 Day4」塔 题目描述 现在有一条 $ [1, l] $ 的数轴,要在上面造 $ n $ 座塔,每座塔的坐标要两两不同,且为整点. 塔有编号,且每座塔都 ...

  9. Loj #6073.「2017 山东一轮集训 Day5」距离

    Loj #6073.「2017 山东一轮集训 Day5」距离 Description 给定一棵 \(n\) 个点的边带权的树,以及一个排列$ p\(,有\)q $个询问,给定点 \(u, v, k\) ...

随机推荐

  1. centos7 文件属性介绍block+软硬连接介绍

    block block用于存放的是数据信息 block默认大小是4k,可以进行调整 比较大的文件,会占用多个block 比较小的文件,剩余空间无法使用,浪费磁盘空间 软硬链接的区别 硬链接:是文件的多 ...

  2. [论文翻译] 分布式训练 Parameter sharding 之 ZeRO

    [论文翻译] 分布式训练 Parameter sharding 之 ZeRO 目录 [论文翻译] 分布式训练 Parameter sharding 之 ZeRO 0x00 摘要 0x01 综述 1.1 ...

  3. c++智能指针的使用,shared_ptr,unique_ptr,weak_ptr

    c++智能指针的使用 官方参考 普通指针的烦恼:内存泄漏,多次释放,提前释放 智能指针 负责自动释放所指向的对象. 三种智能指针 shared_ptr,unique_ptr,weak_ptr: 将sh ...

  4. IDEA导入Web项目配置Tomcat启动

    1.导入项目 2.配置project 3.导入项目模块 配置Models 4.配置Libraries 5. 6. 7.配置tomcat

  5. Protobuf使用--go和C#

    一.Go安装及使用protobuf工具 以下都是基于Linux系统: 1.安装 A) protobuf 编译工具安装 1.下载 protoBuf: cd $GOPATH/src/ git clone ...

  6. preg_match绕过总结

    preg_match绕过总结 什么是preg_match 绕过方法 1.数组绕过 preg_match只能处理字符串,当传入的subject是数组时会返回false 2.PCRE回溯次数限制 PHP利 ...

  7. 【记录一个问题】铁威马NAS,升级系统后,所有安装的配置项都丢失了

    因为铁威马的系统功能真的是弱,所以写了一些家庭照片处理的系统. 上上周升级了系统后,丢失了以下内容: anaconda 2.及其conda下python3环境的各种库 3.nginx的转发配置 铁威马 ...

  8. .Net Core中自定义认证实现

    一.起因 最近项目中需要对项目同时支持JWT认证,以及自定义的认证校验方式认证.通过对官方文档了解,得到认证实现主要通过继承IAuthenticationHandler 或 Authenticatio ...

  9. gin框架中请求参数的绑定与多数据格式处理

    package main import ( "fmt" "github.com/gin-gonic/gin" ) // gin框架提供给开发者表单实体绑定的功能 ...

  10. Tomcat-如何创建动态的web工程及目录介绍

    1,IDEA中如何创建动态web工程 (1)创建一个新模块 (2)选择你要创建什么类型的模块 (3)输入模块名,finish完成创建 创建成功如下图: 一般在WEB-INF下建一个lib目录 存放ja ...