求值2(组合数平方和)
发布日期:2021-09-19 10:55:51
浏览次数:1
分类:技术文章
本文共 1041 字,大约阅读时间需要 3 分钟。
题目描述
Ans = 0; For(inti = 1; i <= n; i++) For(int v = 0; v <= n; v++) Ans = (Ans + C(i, v) * C(i, v)) % 998244353;C(i,v)为组合数第i行第v列的数。给你上面的代码中的n,请你输出Ans的值。输入描述:输入一个整数n输出描述:输出Ans的值。示例1输入复制3输出复制28备注:n<=106
思路:
这个题是所有组合数的平方和是概率课本上的一道公式。
直接用鲁卡斯定理求就行。
代码:
#includeusing namespace std;const long long mod=998244353;const int maxn=2000010;long long F[maxn];void init(long long p){ F[0] = 1; for(int i = 1;i <= p;i++) F[i] = F[i-1]*i%mod;}long long inv(long long a,long long m){ if(a == 1)return 1; return inv(m%a,m)*(m-m/a)%m;}long long Lucas(long long n,long long m,long long p){ long long ans = 1; while(n&&m) { long long a = n%p; long long b = m%p; if(a < b)return 0; ans = ans*F[a]%p*inv(F[b]*F[a-b]%p,p)%p; n /= p; m /= p; } return ans;}//int main(){ long long n; cin>>n; init(2*n); long long sum=0; for(int i=1;i<=n;i++) { sum=(sum+Lucas(2*i,i,mod))%mod; } printf("%lld\n",sum);}
转载地址:https://blog.csdn.net/a1046765624/article/details/80663479 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月21日 13时31分59秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
$.format 无需使用+号连接字符串
2019-04-29
mysql 统计查询sql汇总
2019-04-29
mysql 导入导出表结构及数据命令汇总
2019-04-29
git 问题集锦
2019-04-29
Activiti - 新一代的开源 BPM 引擎
2019-04-29
CentOS7安装docker
2019-04-29
虚拟机安装CentOS7及网络配置
2019-04-29
漏洞复现Apache Solr Velocity远程代码执行
2019-04-29
docker下安装vulhub漏洞测试环境(centos7)
2019-04-29
Centos7安装Nessus教程
2019-04-29
基于powershell的渗透测试工具nishang
2019-04-29
WebLogic漏洞复现(CVE-2018-2894)
2019-04-29
常用Linux命令
2019-04-29
Weblogic漏洞复现——XML Decoder(CVE-2017-10271)
2019-04-29
Webug4.0显错注入
2019-04-29
渗透测试流程
2019-04-29
SQL练习(less-2)报错注入
2019-04-29
VMware虚拟机安装Debian
2019-04-29
PC机win10练习v-P-n连接 虚拟机Win2003
2019-04-29