2020牛客暑期多校训练营(第一场)Easy Integration
题意:给你n,
求这个积分,最后的结果分子是记为p,分母记为q。
求(p*q-1)mod 998244353。
题解:比赛完看到巨巨说这是贝塔函数,我一搜还真是。
贝塔函数的递推公式:

但是菜鸡只会打表找规律。那么说说怎么找到的规律吧。
先把所有的分子分母都找到,这个要用到(x-1)^n=C(n,0)x^n(-1)^0+C(n,1)x^(n-1)(-1)^1+C(n,2)x^(n-2)(-1)^2+……+C(n,n)x^0(-1)^n ,(-1)^x 从0到n变成从n到0就变成了 (1-x)^n 的公式了。把分母都输出,发现分母是从(n+1)到(2n+1)连续的数,相乘就是 n! / (2n+1)! 。然后把分式通分,求出所有的分子相加,输出分子的和会发现分子就是 n! 。所以这个分式就是 n!*n! / (2n+1)! 。这里应该会用到费马小定理,拓展欧几里得也可以,我这里用的是费马小定理。
1 #include<bits/stdc++.h>
2 #define ll long long
3 #define pb push_back
4 #define ft first
5 #define sd second
6 using namespace std;
7
8 ll fac[2000100],inv[2000100];
9 const ll mod=998244353;
10 const ll N=2e6+10;
11 ll a[1001000],b[1000100];
12
13 ll quick(ll a,ll b)
14 {
15 ll res=1;
16 a=a%mod;
17 while(b){
18 if(b&1) res=(res*a)%mod;
19 a=(a*a)%mod;
20 b>>=1;
21 }
22 return res%mod;
23 }
24
25 void init()
26 {
27 fac[0]=inv[0]=inv[1]=1;
28 for(ll i=1;i<=N;i++)
29 fac[i]=fac[i-1]*i%mod;
30 for(ll i=2;i<=N;i++)
31 inv[i]=(mod-mod/i)*inv[mod%i]%mod;
32 for(ll i=1;i<=N;i++)
33 inv[i]=inv[i-1]*inv[i]%mod;
34 }
35 ll C(ll n,ll m)
36 {
37 return fac[n]*inv[m]%mod*inv[n-m]%mod;
38 }
39
40 int main()
41 {
42 ios::sync_with_stdio(false);
43 cin.tie(0);
44 cout.tie(0);
45 init();
46 ll n;
47 while(cin>>n){
48 /**打表找规律
49
50 ll p=0,q=1;
51 for(ll i=0;i<=n;i++){
52 a[i]=C(n,i);
53 b[i]=n-i+n+1;
54 a[i]%=mod;
55 b[i]%=mod;
56 if((n-i)&1) a[i]=-a[i];
57 q*=b[i];
58 q%=mod;
59 cout<<b[i]<<' ';
60 }
61 cout<<endl;
62 for(ll i=0;i<=n;i++){
63 p+=q*a[i]%mod*quick(b[i],mod-2);
64 p%=mod;
65 }
66 cout<<p<<endl;
67 ll x=__gcd(p,q);
68 p/=x,q/=x;
69 ll ans=(p*quick(q,mod-2))%mod;
70 cout<<ans<<endl;
71
72 **/
73 ll p=fac[n]*fac[n]%mod;
74 ll q=fac[2*n+1];
75 cout<<p*quick(q, mod-2)%mod<<endl;
76 }
77 return 0;
78 }
2020牛客暑期多校训练营(第一场)Easy Integration的更多相关文章
- 2020牛客暑期多校训练营 第二场 K Keyboard Free 积分 期望 数学
LINK:Keyboard Free 我要是会正经的做法 就有鬼了. 我的数学水平没那么高. 三个同心圆 三个动点 求围成三角形面积的期望. 不会告辞. 其实可以\(n^2\)枚举角度然后算出面积 近 ...
- 2020牛客暑期多校训练营 第二场 J Just Shuffle 置换 群论
LINK:Just Shuffle 比较怂群论 因为没怎么学过 置换也是刚理解. 这道题是 已知一个置换\(A\)求一个置换P 两个置换的关键为\(P^k=A\) 且k是一个大质数. 做法是李指导教我 ...
- 2020牛客暑期多校训练营 第二场 I Interval 最大流 最小割 平面图对偶图转最短路
LINK:Interval 赛时连题目都没看. 观察n的范围不大不小 而且建图明显 考虑跑最大流最小割. 图有点稠密dinic不太行. 一个常见的trick就是对偶图转最短路. 建图有点复杂 不过建完 ...
- 2020牛客暑期多校训练营 第二场 C Cover the Tree 构造 贪心
LINK:Cover the Tree 最受挫的是这道题,以为很简单 当时什么都想不清楚. 先胡了一个树的直径乱搞的贪心 一直过不去.后来意识到这类似于最经典长链剖分优化贪心的做法 然后那个是求最大值 ...
- 2020牛客暑期多校训练营 第二场 B Boundary 计算几何 圆 已知三点求圆心
LINK:Boundary 计算几何确实是弱项 因为好多东西都不太会求 没有到很精通的地步. 做法很多,先说官方题解 其实就是枚举一个点 P 然后可以发现 再枚举一个点 然后再判断有多少个点在圆上显然 ...
- 2020牛客暑期多校训练营 第二场 A All with Pairs 字符串hash KMP
LINK:All with Pairs 那天下午打这个东西的时候状态极差 推这个东西都推了1个多小时 (比赛是中午考试的我很困 没睡觉直接开肝果然不爽 一开始看错匹配的位置了 以为是\(1-l\)和\ ...
- 2020牛客暑期多校训练营(第一场)H Minimum-cost Flow
Minimum-cost Flow 题目:给n个点,m条边.接下来m行包含(a,b,c),即a,b之间有单位流量代价为c的边.接下来有q个问题,每个问题给定(x,y),即假设每条边的容量为x/y时,从 ...
- 2020牛客暑期多校训练营(第四场)BCFH
BCFH B. Basic God Problem 题意 给出c和n,求fc(n). 题解 递归到最后 fc 函数肯定等于1,那么就变成了求c被乘了几次,只要找到 x 最多能被分解成多少个数相乘就好了 ...
- 2020牛客暑期多校训练营(第八场)K-Kabaleo Lite题解
K-Kabaleo Lite 题目大意: 给出每种菜品的利润以及碟数,要求我们给每个客人至少一碟菜,要求从1号菜品开始给,给的菜品的号码是连续的,每个客人同号码的菜都只能给一碟.求能招待客人的最大数量 ...
随机推荐
- SpringCloud Alibaba Nacos服务注册与配置管理
Nacos SpringCloud Alibaba Nacos是一个狗抑郁构建云原生应用的动态服务发现.配置管理和服务管理平台. Nacos:Dynamic Naming and Configurat ...
- SpringBoot嵌入式Servlet容器
SpringBoot默认是将Tomcat作为嵌入式的servlet容器. 问题: 如何修改嵌入式的servlet容器? 1)在配置文件中设置对应的属性值 server.port=8081 # Tomc ...
- selenium自动化 | 借助百度AI开放平台识别验证码登录职教云
#通过借助百度AI开放平台识别验证码登录职教云 from PIL import Image from aip import AipOcr import unittest # driver.get(zj ...
- SQL注入-流程
一般注入分类: 时间,布尔,报错,堆,联合 有关函数介绍: current_user() 当前用户名 session_user() 链接数据库的用户名 @@basedir mysql安装路径 @@da ...
- awk中的if ,else
local pct="$(awk -v one="$1" -v two="$2" 'BEGIN{ if (two > 0) { printf & ...
- grep和egrep
grep nobody /etc/passwd 显示/etc/passwd中带有nobody字样的行,区分大小写 grep -i nobody /etc/passwd 现实/etc/passwd中 ...
- 代码审计 - BugkuCTF
extract变量覆盖: 相关函数: extract()函数:从数组中将变量导入到当前的符号表.把数组键名作为变量名,数组的键值作为变量值.但是当变量中有同名的元素时会默认覆盖掉之前的变量值. tri ...
- Doge.jpg 的背后是什么,你知道么?
图片,是我们生活中最常见的信息载体,作为一个日常生活中无处不在的事物,我们已经很习惯静态或者动态的图片了.大家也了解静态图片主要是jpg/png格式,动态图片主要为 gif.那你有没有过一瞬间的疑惑: ...
- 视图V_160M和表T_160M的维护
今天发现一个视图,通过SM30居然无法维护,这个视图就是V_160M,表为T_160M,是采购相关的系统消息, 不过别着急,有办法维护的,呵呵,看下面: 试一试OMCQ这个事物代码吧! 分享出来,给需 ...
- linux设备文件
一.前言 在调用了alloc_chrdev_region函数或register_chrdev_region函数之后可以在/proc/devices中看到该设备的主设备号,比如我注册的hello模块的主 ...