双倍经验

传送门

首先坐在一起的cp和不坐在一起的cp是相对独立的,可以分开考虑,然后方案数相乘

坐在一起的cp,方案为\(\binom{n}{k}*\binom{n}{k}*k!*2^k\).首先选出k排座位,然后选出k对cp坐下,然后这k对可以任意打乱顺序,并且每一对可以换座位

不坐在一起的cp,一开始以为就是个错排,然后错排其实是没考虑一对cp坐在同一列的情况的.考虑递推,设\(f[i]\)表示i个不坐在一起的cp的方案.首先可以选出两个不是一对cp的人,方案为\(2i*(2i-2)\),然后钦定他们坐第一排.然后考虑这两个人的另一半(严谨)

  • 另外的那两个人坐一排,一个人可以坐\(2x-2\)个位置,第二个只能坐旁边,那么剩下的人的方案就是i-2对的方案,所以总方案为\((2x-2)*f[i-2]\)

  • 他们不坐一排,那么可以先假设他们是cp(逃,然后就是i-1对的方案,即\(f[i-1]\)

然后不坐一起cp的方案为\(2i*(2i-2)*(f[i-1]+(2x-2)*f[i-2])\)

然后预处理阶乘以及逆元,还有f和2的次幂,乘起来就没了

#include<bits/stdc++.h>
#define LL long long
#define db double
#define il inline
#define re register using namespace std;
const int N=5e6+10,mod=998244353;
il int rd()
{
int x=0,w=1;char ch=0;
while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();}
return x*w;
}
il int fpow(int a,int b){int an=1;while(b){if(b&1) an=1ll*an*a%mod;a=1ll*a*a%mod,b>>=1;}return an;}
int fac[N],iac[N],d[N],pw[N];
il int C(int n,int m){return (m<0||n<m)?0:1ll*fac[n]*iac[m]%mod*iac[n-m]%mod;} int main()
{
//fffffffffffffffffffff
fac[0]=1;
for(int i=1;i<=N-10;++i) fac[i]=1ll*fac[i-1]*i%mod;
iac[N-10]=fpow(fac[N-10],mod-2);
for(int i=N-10;i;--i) iac[i-1]=1ll*iac[i]*i%mod;
pw[0]=1;
for(int i=1;i<=N-10;++i) pw[i]=(pw[i-1]<<1)%mod;
d[0]=1;
for(int i=2;i<=N-10;++i) d[i]=1ll*2*i%mod*2*(i-1)%mod*(d[i-1]+1ll*2*(i-1)*d[i-2]%mod)%mod;
int T=rd();
while(T--)
{
int n=rd(),k=rd();
printf("%lld\n",1ll*C(n,k)*C(n,k)%mod*fac[k]%mod*pw[k]%mod*d[n-k]%mod);
}
return 0;
}

luogu P4931 情侣?给我烧了!的更多相关文章

  1. 洛谷P4931 情侣!给我!烧了! 数论

    正解:数论 解题报告: 传送门 这题,想不到就很痛苦,但是理解了之后还是觉得也没有很难,,,毕竟实现不难QAQ 首先关于前面k对情侣的很简单,就是C(n,k)*C(n,k)*A(k,k)*2k 随便解 ...

  2. 洛谷P4931 情侣?给我烧了!(加强版)(组合数学)

    题面 传送门 题解 首先我们算出刚好有\(k\)对情侣的方案数 从\(n\)对情侣中选出\(k\)对,方案数为\({n\choose k}\) 从\(n\)排座位中选出\(k\)排,方案数为\({n\ ...

  3. 洛谷 P2194 HXY烧情侣【Tarjan缩点】 分析+题解代码

    洛谷 P2194 HXY烧情侣[Tarjan缩点] 分析+题解代码 题目描述: 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里 ...

  4. 洛谷P2194 HXY烧情侣

    题目描述 众所周知,\(HXY\)已经加入了\(FFF\)团.现在她要开始喜\((sang)\)闻\((xin)\)乐\((bing)\)见\((kuang)\)地烧情侣了.这里有\(n\)座电影院, ...

  5. HXY烧情侣(洛谷 2194)

    题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要 ...

  6. HXY烧情侣

    题目描述 众所周知,HXY已经加入了FFF团.现在她要开始喜(sang)闻(xin)乐(bing)见(kuang)地烧情侣了.这里有n座电影院,n对情侣分别在每座电影院里,然后电影院里都有汽油,但是要 ...

  7. P2194 HXY烧情侣【Tarjan】

    前言 当时和\(GYZ\)大佬一起做这个题,他表示这个题对他很不友好(手动滑稽) 题目描述 众所周知,\(HXY\) 已经加入了 \(FFF\) 团.现在她要开始喜(sang)闻(xin)乐(bing ...

  8. 【luogu P2194 HXY烧情侣】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2194 第一问:缩点并且统计其强连通分量里的最小耗费.把所有强连通分量的最小耗费加起来. 第二问:统计在每个强 ...

  9. 洛谷 P4931 - [MtOI2018]情侣?给我烧了!(加强版)(组合数学)

    洛谷题面传送门 A 了这道题+发这篇题解,就当过了这个七夕节吧 奇怪的过节方式又增加了 首先看到此题第一眼我们可以想到二项式反演,不过这个 \(T\) 组数据加上 \(5\times 10^6\) 的 ...

随机推荐

  1. kafka 流式计算

    http://www.infoq.com/cn/articles/kafka-analysis-part-7/ Kafka设计解析(七)- 流式计算的新贵 Kafka Stream

  2. P3378 堆の模板

    如果不是可并堆/带修堆/卡常题,一般都用优先队列实现. 很多O(nlogn)过不了的题都可以用蚯蚓的套路来实现!!! 优先队列带修用延迟删除法. 堆,可以简单的用优先队列来实现,也可以自己手打. #i ...

  3. 跟着 underscore 学节流

    更多内容请参考:我的新博客 在上一篇文章中,我们了解了为什么要限制事件的频繁触发,以及如何做限制: debounce 防抖 throttle 节流 上次已经说过防抖的实现了,今天主要来说一下节流的实现 ...

  4. [NOI2017]游戏(2-SAT)

    这是约半年前写的题解了,就搬过来吧 感觉这是NOI2017最水的一题(当然我还是不会2333),因为是一道裸的2-SAT.我就是看着这道题学的2-SAT 算法一:暴力枚举.对于abc二进制枚举,对于x ...

  5. Tomcat内存监控及调优

    JDK(1.6版本以上)自带有个jvisualvm工具.该工具是用来监控java运行程序的cpu.内存.线程等的使用情况.并且使用图表的方式监控java程序.还具有远程监控能力. 界面如下: 1.JD ...

  6. JS模块化开发(四)——构建工具gulp

    gulp.js——基于流的自动化构建工具 步骤: 1. 全局安装 gulp: $ npm install --global gulp 2. 作为项目的开发依赖(devDependencies)安装: ...

  7. glob.glob 匹配文件

    glob.glob以列表形式返回匹配的文件路径 只有一个参数:文件的匹配规则 e.g. >>>res_home = '/vip_data_center/test_envs/train ...

  8. Linux(centos7)如何安装Zend Optimizer Zend Guard Loader

    下载地址:http://www.zend.com/en/products/loader/downloads#Linux 1.解压 wget http://downloads.zend.com/guar ...

  9. IO以及file的一些基本方法

    IO定义:将内存的数据 持久化到设备上 这个动作称为输出 写 Output操作 把硬盘上的数据读取到内存 这个动作称为输入 读 Input 把上面这两种操作称为IO操作 File类的静态成员变量:pa ...

  10. 把菜单栏变成万能工具箱,让你的 Mac 更酷炫

    文章来源:知乎 文章收录于:风云社区 www.scoee.com,提供上千款各类mac软件下载 为了彰显存在感,各路 Mac 应用都喜欢在菜单栏上安置一个图标:其中有的只是用来召唤主界面,也有一些应用 ...