#排列组合#美团2018年CodeM大赛-决赛 A-Exam
分析
因为第一名所在的学校一定会发喜报,
所以只有一个学校发喜报说明其它学校都没有发喜报
钦定第一名所在的学校为1,总方案要乘\(n\),那么两个1之间不可能出现两个相同的学校的学生
那么可以分成两部分,按照乘法原理,左边是在剩下的\(n-1\)个学校中选出\(i\)个进行排列,
右边是在剩下的\(2n-2-i\)个位置进行全排列,由于有\(n-i-1\)个学校需要2个位置,按照多重集的排列数还要除以\(2^{n-i-1}\)
总而言之,
\]
代码
#include <cstdio>
#define rr register
using namespace std;
const int mod=998244353,N=1000011;
int n,fac[N<<1],inv[N],two[N],ans;
inline signed mo(int x,int y){return x+y>=mod?x+y-mod:x+y;}
signed main(){
scanf("%d",&n),fac[0]=fac[1]=inv[0]=inv[1]=two[0]=1;
for (rr int i=2;i<=n;++i) inv[i]=1ll*inv[mod%i]*(mod-mod/i)%mod;
for (rr int i=1;i<=n;++i) two[i]=1ll*two[i-1]*inv[2]%mod;
for (rr int i=2;i<=n;++i) inv[i]=1ll*inv[i-1]*inv[i]%mod;
for (rr int i=2;i<=2*n;++i) fac[i]=1ll*fac[i-1]*i%mod;
for (rr int i=0;i<n;++i) ans=mo(ans,1ll*fac[n*2-2-i]*two[n-i-1]%mod*inv[n-i-1]%mod);
return !printf("%d",1ll*ans*fac[n]%mod);
}
#排列组合#美团2018年CodeM大赛-决赛 A-Exam的更多相关文章
- 美团2018年CodeM大赛-初赛B轮 B 配送(最短路)
美团2018年CodeM大赛-初赛B轮 B 配送 题意 题解 对于每个任务,只要从上个任务的终点出发即可. 时间.地点很少,可以算出每个地点-时间的最小花费. 以题目描述的起点终点起始结束时间建图,很 ...
- 美团2018年CodeM大赛-初赛B轮 C题低位值
试题链接:https://www.nowcoder.com/acm/contest/151/C 定义lowbit(x) =x&(-x),即2^(p-1) (其中p为x的二进制表示中,从右向左数 ...
- 美团2018年CodeM大赛-资格赛 分数 暴力模拟
链接:https://www.nowcoder.com/acm/contest/138/D来源:牛客网 小胖参加了人生中最重要的比赛——MedoC资格赛.MedoC的资格赛由m轮构成,使用常见的“加权 ...
- 美团2018年CodeM大赛-资格赛
https://www.nowcoder.com/acm/contest/138#question A.下单 水题…… B.可乐 题意:求期望 代码: #include<iostream> ...
- 美团2017年CodeM大赛-初赛B轮-黑白树
https://ac.nowcoder.com/acm/problem/13249 链接:https://ac.nowcoder.com/acm/problem/13249来源:牛客网 题目描述 一棵 ...
- 美团2017年CodeM大赛-初赛B轮 黑白树 (树形dp)
大意: 给定树, 初始每个点全为白色, 点$i$有权值$k_i$, 表示选择$i$后, 所有距离$i$小于$k_i$的祖先(包括i)会变为黑色, 求最少选多少个点能使所有点变为黑色. 链上情况的话, ...
- 美团2017年CodeM大赛-初赛A轮 C合并回文子串
区间dp一直写的是递归版本的, 竟然超时了, 学了一下非递归的写法. #include <iostream> #include <sstream> #include <a ...
- 2018.10.26 poj3421X-factor Chains(数论+排列组合)
传送门 排列组合入门题. 令X=p1a1p2a2..pkakX=p_1^{a_1}p_2^{a_2}..p_k^{a_k}X=p1a1p2a2..pkak 那么答案1就等于∑i=1kai\ ...
- Python实现排列组合
# -*- coding: utf-8 -*-"""Created on Sat Jun 30 11:49:56 2018 @author: zhen"&quo ...
- 【指数型母函数】hdu1521 排列组合
#include<cstdio> #include<cstring> using namespace std; int n,m,jiecheng[11]; double a[1 ...
随机推荐
- 在Mac下使用zsh
什么是zsh 简单来说,zsh是一个构建于bash之上的shell工具,详见:zsh . 相比起bash,zsh默认支持许多非常实用的功能,比如:可以显示当前所在的git分支,这对于程序员来说是非常有 ...
- go-ini解析ini文件
文档 https://github.com/go-ini/ini https://ini.unknwon.io/docs/intro/getting_started go get -u gopkg.i ...
- linux服务器界面初始--day01
linux服务器界面初始 ip add show 查看服务器网卡信息还可以使用ifconfig 局域网ip: 192.168.1.0 10.0.0.0 172.16.1.0 如果网卡没有启用,我们需要 ...
- windows下的批处理bat文件和Linux下的shell文件的含义
原文:https://www.cnblogs.com/caiguodong/p/10308255.html shell(Linux.Solaris) bat(windows) 含义 # rem 注释行 ...
- error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)
起因:自己顶不住好奇心,升级了Mac系统.界面看起来,真香!然鹅用起来其实也挺香,就是有些开发常用的竟然挂掉了,挂掉了. 最直观的就是Parallels Desktop , xcode , git,完 ...
- CDC作业历史记录无法删除问题
背景 数据库开启CDC功能后,每天会生成大量的历史记录,即使达到参数"每个作业的最大历史记录"的阈值后也不会被删除,导致其它作业的历史记录被删除,无法查看以前的执行情况,非常不方便 ...
- Java 接口:比较对象的大小
1 package com.bytezreo.interfacetest; 2 3 /** 4 * 5 * @Description 接口:比较对象的大小 6 * @author Bytezero·z ...
- Java 小案例+super使用
1 package com.bytezero.supertest3; 2 3 /** 4 * 5 * @Description AccountTest类 6 * @author Bytezero·zh ...
- Thinkphp6 自定义命令创建类文件
以创建控制器为例 1.先通过 think 命令创建一个make文件,效果如下图: php think make:command make/MyController 2.修改上面创建的文件[MyCont ...
- mysql视图详细笔记
1 #视图 2 /* 3 含义:虚拟表,和普通表一样使用 4 mysql5.1版本出现的新特性,是通过表动态生成的数据 5 6 比如:舞蹈班和普通班级的对比 7 创建语法的关键字 是否实际占用物理空间 ...