LGP4609题解
题意简单明确(
很容易知道最高的位置一定是左边能看到最高的和右边能看到最高的。于是我们考虑一个 dp:
设 \(dp[n][A][B]\) 表示长度为 \(n\) 的排列,左边有 \(A\) 个 balabala,右边有 \(B\) 个 balabala。
我们考虑每次令整个排列的元素全部加一,然后插入一个 \(1\)。
很明显,如果 \(1\) 插在最左边,会令 \(A+1\),如果插在最右边会令 \(B+1\),否则都不变。
于是得到了递推方程:
\]
这样会得到 20pts 的好成绩。吸口氧不知道能不能跑快点儿。
观察 dp 的递推式,发现其存在组合意义:从 \((1,1,1)\) 到 \((n,A,B)\),令 \(n+1\) 会使 \(prod\) 乘上一个 \(n-1\) 。问所有路径的权值之和。
所以相当于从 \((1,n]\) 中选 \(A+B-2\) 个位置,其中 \(A-1\) 个位置为 \(0\),\(B-1\) 个位置为 \(1\),剩下的为下标减去 \(2\)。
于是问题变成了从 \([0,n-2]\) 中选择 \(A+B-2\) 个数删掉,所有方案剩下数之积之和。
从 \(n\) 个数中选择 \(m\) 个数删掉,似乎是经典的背包问题。
设 \(f[n][m]\) 为 \([0,n-2]\) 中删掉 \(m\) 个数的积之和。
然后你发现 \(f[1][1]\) 的定义出现了问题,于是重新设,设为 \([0,n-1]\),最后把 \(f[n][A+B-2]\) 改成 \(f[n-1][A+B-2]\) 就行。
这里的递推式为 \(f[n][m]=f[n-1][m] \times (n-1)+f[n-1][m-1]\)。
然后我们需要从 \(A+B-2\) 中选择 \(A-1\) 个位置令其为 \(1\),剩下的位置为 \(0\)。
所以答案就是 \(f[n-1][A+B-2] \times \binom {A+B-2} {A-1}\)。
写完题解后翻了一圈题解区,咋全是斯特林数,然后发现自己的 \(f\) 就是斯特林数/qd
#include<cstdio>
#include<cctype>
typedef unsigned ui;
const ui M=2e5+5,mod=1e9+7;
ui T,n[M],A[M],B[M],C[205][205],f[50005][205];
inline ui Add(const ui&a,const ui&b){
return a+b>=mod?a+b-mod:a+b;
}
inline ui read(){
ui n(0);char s;while(!isdigit(s=getchar()));
while(n=n*10+(s&15),isdigit(s=getchar()));return n;
}
inline void write(ui n){
static char s[10];ui top(0);
while(s[++top]=n%10^48,n/=10);
while(putchar(s[top]),--top);
}
signed main(){
ui i,j,mx(0);T=read();f[0][0]=C[0][0]=1;
for(i=1;i<=T;++i)n[i]=read(),A[i]=read(),B[i]=read(),n[i]>mx&&(mx=n[i]);
for(i=1;i<=mx;++i)for(j=1;j<=i&&j<=200;++j)f[i][j]=(f[i-1][j]*(i-1ull)+f[i-1][j-1])%mod;
for(i=1;i<=200;++i)for(C[i][0]=1,j=1;j<=200;++j)C[i][j]=Add(C[i-1][j],C[i-1][j-1]);
for(i=1;i<=T;++i)write(1ull*f[n[i]-1][A[i]+B[i]-2]*C[A[i]+B[i]-2][A[i]-1]%mod),putchar(10);
}
LGP4609题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- Myeclipse设置关键词自动提示功能以及取消空格和"="的自动补全
一.设置Myeclipse从a~z的自动提示功能 1. "window"→"Preferences"2. 选择"Java",展开," ...
- Saas系统架构的思考,多租户Saas架构设计分析
ToB Saas系统最近几年都很火.很多创业公司都在尝试创建企业级别的应用 cRM, HR,销售, Desk Saas系统.很多Saas创业公司也拿了大额风投.毕竟Saas相对传统软件的优势非常明显. ...
- js正则表达式 (.+)与(.+?)
(.+)默认是贪婪匹配 (.+?)为惰性匹配 疑问号让.+的搜索模式从贪婪模式变成惰性模式. var str = 'aaa<div style="font-color:red;&quo ...
- 简述keepalived工作原理
1.Keepalived 定义 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以利用其来避免单点故障.一个LVS服务会有2台服务器运行Keepalived,一台为主服务器 ...
- python基础语法_字符串编码
Python常用字符编码 http://www.cnblogs.com/schut/p/8406897.html Python常见字符编码间的转换 在字符串写入文件时,有时会因编码问题导致无法 ...
- ASP.NET Core 6框架揭秘实例演示[03]:Dapr初体验
也许你们可能没有接触过Dapr,但是一定对它"有所耳闻",感觉今年它一下子就火了,一时间很多人都在谈论它.我们从其命名(Dapr的全称是"分布式应用运行时Distribu ...
- like使用索引如何避免失效
1 准备数据 1.1 建表 DROP TABLE IF EXISTS staff; CREATE TABLE IF NOT EXISTS staff ( id INT PRIMARY KEY auto ...
- Solution -「CF 1060F」Shrinking Tree
\(\mathcal{Description}\) Link. 给定一棵 \(n\) 个点的树,反复随机选取一条边,合并其两端两点,新点编号在两端两点等概率选取.问每个点留到最后的概率. ...
- C#字符串Base64编解码
C#字符串Base64编解码 首先讲一下什么是Base64编码所谓Base64就是一种基于64个可打印字符来表示二进制数据的方法.Base64编码是从二进制到字符的过程,常用于在网络上传输不可见字符( ...
- 痞子衡嵌入式:对比MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MbedTLS算法库纯软件实现与i.MXRT上DCP,CAAM硬件加速器实现性能差异. 近期有 i.MXRT 客户在集成 OTA SBL ...