传送:https://vjudge.net/problem/TopCoder-14084

只是利用了笛卡尔树的性质,设f[i][j]为区间[i,j]的贡献,然后枚举中间最大的点k来转移,首先是两侧小区间贡献的,f[i][k-1]*fac[j-k]+f[k+1][j]*fac[k-i],大概是方案数相乘的形式

然后考虑中间点的儿子的贡献,是\( fac[k-i-1]|*fac[j-k-1]|*sum_{l=i}{k-1}\sum_{r=k+1}{j}r-l \),前面表示两侧任意排列,后面两个求和可以化简

然后最后整体乘c[j-i][k-i]表示选出一部分作为左儿子

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
class BearPermutations2
{
private:
long long mod,f[105][105],c[105][105],fac[105];
public:
long long clc(long long l,long long r)
{
return (l+r)*(r-l+1)/2%mod;
}
int getSum(int n,int MOD)
{
memset(f,0,sizeof(f));
memset(c,0,sizeof(c));
mod=MOD;
fac[0]=1;
for(int i=1;i<=n;i++)
fac[i]=fac[i-1]*i%mod;
c[0][0]=1;
for(int i=1;i<=n;i++)
{
c[i][0]=1;
for(int j=1;j<=i;j++)
c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;
}
for(int i=n;i>=1;i--)
for(int j=i;j<=n;j++)
for(int k=i;k<=j;k++)
{
if(k!=i)
f[i][j]=(f[i][j]+c[j-i][k-i]*f[i][k-1]%mod*fac[j-k]%mod)%mod;
if(k!=j)
f[i][j]=(f[i][j]+c[j-i][k-i]*f[k+1][j]%mod*fac[k-i]%mod)%mod;
if(k!=i&&k!=j)
f[i][j]=(f[i][j]+c[j-i][k-i]*fac[k-i-1]%mod*fac[j-k-1]%mod*(clc(k+1,j)*(k-i)%mod-clc(i,k-1)*(j-k)%mod+mod)%mod)%mod;
}
return (f[1][n]+mod)%mod;
}
};

最新文章

  1. c/c++ string
  2. Java--对象池化技术 org.apache.commons.pool2.ObjectPool
  3. Configure Amazon RDS mysql to store Chinese Characters
  4. iOS面试题及答案2015.6.7
  5. jquery ui autoComplete自动完成
  6. 一个 Android 任务队列的实现
  7. MySQL生产库主从重新同步操作注意事项
  8. Html5 Canvas Text
  9. Linux 修改时区 不用重启
  10. 批量替换表中某字段的“\t”
  11. Codeforces 977F - Consecutive Subsequence - [map优化DP]
  12. [Robot Framework] 通过Robot Remote Server调用White Library测试WPF开发的桌面产品
  13. Redis发布订阅机制
  14. ajax提交post请求出现数组被截断情况的解决方法
  15. js中为什么非要alert一下下一步才会执行
  16. phpstudy mysql无法启动
  17. 随想录(skyeye中的soc仿真)
  18. P1977 出租车拼车(DP)
  19. NOI2017退役记
  20. js作用域的几个问题

热门文章

  1. LeetCode(125)题解--Valid Palindrome
  2. (转)c#(wince)中使用多线程访问winform中控件的问题
  3. SAM4E单片机之旅——3、LED闪烁之定时器中断
  4. Redisson实现Redis分布式锁的N种姿势(转)
  5. aop学习总结一------使用jdk动态代理简单实现aop功能
  6. MongoDB 学习五:索引
  7. xml 基础属性
  8. cnn汉字识别 tensorflow demo
  9. POJ2154 Color【 polya定理+欧拉函数优化】(三个例题)
  10. JavaScript-Tool:jQuery