题目:

分析:

好难好难。。。

下来听神仙讲。。

每一个长度为n-2的prufer序列一一对应一棵大小为n的树。。。

每个点在序列中的出现次数为该点的度数减一

哦???

。。。

哦。。。

prufer序列貌似忘得差不多了诶。。

于是问题就变成在长度为n-2的序列上放1~n,每个元素有次数限制。。。

n^4DP。。。100卡一卡就跑得过。。。

f [ i ] [ j ] [ k ]表示考虑前 i 个数,用了 j 个,一共占了prufer序列 k 个位置。。。

然后组合数加加减减。。。

还是自己太菜了

#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<map> #define maxn 105
#define INF 0x3f3f3f3f
#define MOD 1000000007 using namespace std; inline int getint()
{
int num=,flag=;char c;
while((c=getchar())<''||c>'')if(c=='-')flag=-;
while(c>=''&&c<='')num=num*+c-,c=getchar();
return num*flag;
} int n;
long long fac[maxn],inv[maxn];
int A[maxn],cnt;
long long f[maxn][maxn][maxn]; int main()
{
int T=getint();
fac[]=fac[]=inv[]=inv[]=;
for(int i=;i<maxn;i++)fac[i]=fac[i-]*i%MOD;
for(int i=;i<maxn;i++)inv[i]=inv[MOD%i]*(MOD-MOD/i)%MOD;
for(int i=;i<maxn;i++)inv[i]=inv[i-]*inv[i]%MOD;
while(T--)
{
n=getint();cnt=;
for(int i=;i<=n;i++)cnt+=((A[i]=getint())>);
memset(f,,sizeof f);f[][][]=;
for(int i=;i<=n;i++)for(int j=;j<i;j++)for(int k=;k<=n-;k++)
{
(f[i][j][k]+=f[i-][j][k])%=MOD;
for(int o=;o<=min(n-k-,A[i]-);o++)
(f[i][j+][k+o]+=f[i-][j][k]*inv[o]%MOD)%=MOD;
}
printf("%d",cnt);
for(int i=;i<=n;i++)printf(" %lld",f[n][i][i-]*fac[i-]%MOD);
printf("\n");
}
}

20191211 HNOI2017 模拟赛 问题A的更多相关文章

  1. 20191211 HNOI2017模拟赛 C题

    题目: 分析: 开始觉得是神仙题... 然后发现n最多有2个质因子 这说明sm呢... 学过物理的小朋友们知道,当一个物体受多个不同方向相同的力时,只有相邻力的夹角相等,受力就会平衡 于是拆扇叶相当于 ...

  2. NOIP模拟赛20161022

    NOIP模拟赛2016-10-22 题目名 东风谷早苗 西行寺幽幽子 琪露诺 上白泽慧音 源文件 robot.cpp/c/pas spring.cpp/c/pas iceroad.cpp/c/pas ...

  3. NOI模拟赛 Day1

    [考完试不想说话系列] 他们都会做呢QAQ 我毛线也不会呢QAQ 悲伤ING 考试问题: 1.感觉不是很清醒,有点困╯﹏╰ 2.为啥总不按照计划来!!! 3.脑洞在哪里 4.把模拟赛当作真正的比赛,紧 ...

  4. NOIP第7场模拟赛题解

    NOIP模拟赛第7场题解: 题解见:http://www.cqoi.net:2012/JudgeOnline/problemset.php?page=13 题号为2221-2224. 1.car 边界 ...

  5. contesthunter暑假NOIP模拟赛第一场题解

    contesthunter暑假NOIP模拟赛#1题解: 第一题:杯具大派送 水题.枚举A,B的公约数即可. #include <algorithm> #include <cmath& ...

  6. NOIP模拟赛 by hzwer

    2015年10月04日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿2(mining) [题目背景] 小奇飞船的钻头开启了无限耐久+精准采集模式!这次它要将原矿运到泛光之源的矿 ...

  7. 小奇模拟赛9.13 by hzwer

    2015年9月13日NOIP模拟赛 by hzwer    (这是小奇=> 小奇挖矿(explo) [题目背景] 小奇要开采一些矿物,它驾驶着一台带有钻头(初始能力值w)的飞船,按既定路线依次飞 ...

  8. PKUSC 模拟赛 day1 下午总结

    下午到了机房之后又困又饿,还要被强行摁着看英文题,简直差评 第一题是NOIP模拟赛的原题,随便模拟就好啦 本人模拟功力太渣不小心打错了个变量,居然调了40多分钟QAQ #include<cstd ...

  9. [GRYZ]寒假模拟赛

    写在前面 这是首次广饶一中的OIERS自编自导,自出自做(zuo)的模拟赛. 鉴于水平气压比较低,机(wei)智(suo)的WMY/XYD/HYXZC就上网FQ下海找了不少水(fei)题,经过他们优( ...

随机推荐

  1. js简单实现promise

    function myPromise(fn){ let status='pending',successCallback=[],failedCallback=[],data=null,reason=n ...

  2. win10 uwp 录制任意应用屏幕

    在 1803 可以使用 Windows.Graphics.Capture 捕获屏幕,可以用来录制应用的窗口 通过 CompositionAPI 和 win2d 可以作为 D3D 绘制,通过 Direc ...

  3. codeforces 1194F (组合数学)

    Codeforces 11194F (组合数学) 传送门:https://codeforces.com/contest/1194/problem/F 题意: 你有n个事件,你需要按照1~n的顺序完成这 ...

  4. 图解Go里面的互斥锁mutex了解编程语言核心实现源码

    1. 锁的基础概念 1.1 CAS与轮询 1.1.1 cas实现锁 在锁的实现中现在越来越多的采用CAS来进行,通过利用处理器的CAS指令来实现对给定变量的值交换来进行锁的获取 1.1.2 轮询锁 在 ...

  5. 一张图帮你记忆,Spring Boot 应用在启动阶段执行代码的几种方式

    前言 有时候我们需要在应用启动时执行一些代码片段,这些片段可能是仅仅是为了记录 log,也可能是在启动时检查与安装证书 ,诸如上述业务要求我们可能会经常碰到 Spring Boot 提供了至少 5 种 ...

  6. 牛客国庆days赛 地铁

    传送门:https://ac.nowcoder.com/acm/problem/52805 我佛了,还能跑边图啊!!! 跑边图不能用vector啦啦啦啦啦 具体也不难,就直接上代码了 #include ...

  7. LINQ 实现多字段关联查询 C#

    var query = from main in _userDeviceChannelRole.Table join deviceChannelInfo in _deviceChannelReposi ...

  8. ECShop二次开发指南(一)

    ECSHOP是一套完整的网络商店解决方案,包括前台的商品展示.购物流程和强大易用的后台管理.由于 ecshop简单易用,使用者几乎可以在3几分钟简单的设置一下就可以拥有一个网上商店系统,所以很多的B2 ...

  9. Python 超级玛丽代码实现:人物行走和碰撞检测

    功能介绍 人物行走 人物的行走速度这边分成水平方向(X轴)和竖直方向(Y轴),水平方向的速度要考虑加速度和摩擦力,竖直方向的速度要考虑重力加速度. 水平方向:设定X轴向右走的速度为大于0,向左走的速度 ...

  10. 端口扫描器--利用python的nmap模块

    安装nmap模块挺麻烦的,搞了半天 不仅要安装pip install nmap 还要sudo apt install nmap 给出代码,没有设多线程,有点慢,注意端口的类型转换,搞了很久 #!/us ...