hdu 6377 : 度度熊看球赛
题解:
- 将原问题转换为 对于全部 (2n)! 种情况,每种情况对ans的贡献为 D^k,其中k表示该情况下有k对情侣座位相邻。
- 预处理好共有 i (1<=i<=N)对情侣时,出现 j (0<=j<=i) 对情侣坐在一起时情况数,用dp[i][j]记录
- 初始条件为dp[1][1]=2
- 当总情侣对数由 i 向 i+1 转移时,j 有四种变化的可能
- j-1 → j : 新来的情侣“一起”插入到不打断先前情侣的“相邻”座位处 dp[i+1][j] += 2 * dp[i][j-1] * (2*i+1-(j-1))
- j → j : 新来的情侣“一起”插入到打断先前某对情侣的“相邻”座位处 dp[i+1][j] += 2 * dp[i][j] * j ,或者“分开”插入到不打断先前情侣的“不相邻”座位处 dp[i+1][j] += 2 * dp[i][j] * C(2*i+1-j,2)
- j+1 → j : 新来的情侣,一个插入到打断先前某对情侣的座位处,另一个插入到不打断先前情侣的座位处 dp[i+1][j] += 2 * dp[i][j+1] * (j+1)*(2*i+1-(j+1)
- j+2 → j : 新来的情侣“分开”插入到打断先前某两对情侣的“相邻”座位处 dp[i+1][j] += 2 * dp[i][j+2] * C(j+2,2)
- 以上为预处理过程
- 最后 ans += d^i * dp[n][i] ,i=0→n
代码如下
#include<bits/stdc++.h>
using namespace std;
typedef long long LL; const LL mod=; LL qpow(LL x,LL n) //求x^n%mod
{
LL ret=;
for(; n; n>>=)
{
if(n&) ret=ret*x%mod;
x=x*x%mod;
}
return ret;
} int C(LL a,LL b=)
{
return a*(a-)%mod*qpow(b,mod-)%mod;
} const int N=1e3+;
LL dp[N][N]; void init()
{
dp[][]=;
for(int i=;i<N;i++)
{
dp[i+][]=*dp[i][]%mod*C(*i+,)%mod+
*dp[i][]%mod**i%mod+
*dp[i][]%mod;
dp[i+][]%=mod;
for(int j=;j<=i+;j++)
{
dp[i+][j]=*dp[i][j-]%mod*(*i+-(j-))%mod+
*dp[i][j]%mod*(j+C(*i+-j,))%mod+
*dp[i][j+]%mod*((j+)*(*i+-(j+))%mod)%mod+
*dp[i][j+]%mod*C(j+,)%mod;
dp[i+][j]%=mod;
}
}
} int main()
{
init();
LL n,d;
while(~scanf("%lld%lld",&n,&d))
{
LL ret=;
if(n==)
{
printf("%lld\n",*d%mod);
continue;
}
for(int i=;i<=n;i++) ret=(ret+dp[n][i]*qpow(d,i)%mod)%mod;
printf("%lld\n",ret);
}
}
hdu 6377 : 度度熊看球赛的更多相关文章
- HDU 6377 度度熊看球赛 (计数DP)
度度熊看球赛 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- hdu 6377 度度熊看球赛 (dp)
大意: $n$对情侣, $2n$个座位, 对于一个方案, 若$k$对情侣相邻, 则喧闹值增加$D^k$, 求喧闹值期望. 跟CF 840C一样, 设$dp[i][j]$为$i$个人, 有$j$对情侣相 ...
- hdu 6118 度度熊的交易计划
度度熊的交易计划 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDU 6118 度度熊的交易计划 【最小费用最大流】 (2017"百度之星"程序设计大赛 - 初赛(B))
度度熊的交易计划 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- HDU 6113 度度熊的01世界 【DFS】(2017"百度之星"程序设计大赛 - 初赛(A))
度度熊的01世界 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- 【判连通】HDU 6113 度度熊的01世界
http://acm.hdu.edu.cn/showproblem.php?pid=6113 [题意] 度度熊是一个喜欢计算机的孩子,在计算机的世界中,所有事物实际上都只由0和1组成. 现在给你一个n ...
- 2017"百度之星"程序设计大赛 - 初赛(A) [ hdu 6108 小C的倍数问题 ] [ hdu 6109 数据分割 ] [ hdu 6110 路径交 ] [ hdu 6112 今夕何夕 ] [ hdu 6113 度度熊的01世界 ]
这套题体验极差. PROBLEM 1001 - 小C的倍数问题 题 OvO http://acm.hdu.edu.cn/showproblem.php?pid=6108 (2017"百度之星 ...
- HDU 6113 度度熊的01世界
度度熊的01世界 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Su ...
- HDU 6118 度度熊的交易计划(最小费用最大流)
Problem Description度度熊参与了喵哈哈村的商业大会,但是这次商业大会遇到了一个难题: 喵哈哈村以及周围的村庄可以看做是一共由n个片区,m条公路组成的地区. 由于生产能力的区别,第i个 ...
随机推荐
- 【FICO系列】SAP 参数(条件表)灵活配置GS01/GS02/GS03
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[FICO系列]SAP 参数(条件表)灵活配 ...
- docker面试总结
1.什么是docker Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows 机器上,也可以实现虚拟化.容 ...
- selenium.common.exceptions.WebDriverException: Message: ‘geckodriver’ executable needs to be in PATH
问题,找不到’geckodriver’ 的环境path,解决方案 下载geckodriver.exe 放到Firefox的安装目录下,如:(D:\火狐\Mozilla Firefox): 将火狐安装目 ...
- MySQL 常用命令和基础语法
-- mysql 命令 SHOW DATABASES; #查看目前系统中存在的数据库 use database_name; #切换数据库 SHOW TABLES; #显示当前数据库下面的所有可用的表 ...
- python 三元运算、列表推倒式、字典推倒式、生成器生成式
1.三元运算 name=input('姓名>>: ') res='SB' if name == 'alex' else 'NB' print(res) 2.列表推倒式 #1.示例 egg_ ...
- spring boot-7.日志系统
日志系统分为两部分,一部分是日志抽象层,一部分是日志实现层.常见的日志抽象层JCL,SLF4J,JBoss-Logging,日志实现层有logback,log4j,log4j2,JUL.日志抽象层的功 ...
- centos7 源码编译安装 php
准备工作 下载 PHP 源码包并解压 $ wget https://www.php.net/distributions/php-7.2.19.tar.bz2 $ yum -y install bzip ...
- [.net core]1,asp.net core 的优势及特性
1.跨平台 支持windows ,linux .macOS 可以托管在iis,apache,Docker,或自宿在自己的进程 2.强大的IDE visual studio 或visual studio ...
- iter的特殊用法以及偏函数partial
iter()的特殊用法 常规使用 iter(obj),会返现一个迭代器,如果 obj 不是可迭代对象,则会报错. 特殊用法(哨兵模式) iter(object[, sentinel]) sentine ...
- RabbitMQ入门教程(六):路由选择Routing
原文:RabbitMQ入门教程(六):路由选择Routing 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog. ...