news 2026/4/23 16:40:59

Hz的计数问题总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Hz的计数问题总结

前言

看见 mod1e9 + 7 就跪了,遂写一篇博客把所有的计数问题、组合数学问题都记录下来…

正片

E. Girl Permutation

Some permutation of lengthn nnis guessed.

You are given the indices of its prefix maximums and suffix maximums.

Recall that a permutation of lengthk kkis an array of sizek kksuch that each integer from1 11tok kkoccurs exactly once.

Prefix maximums are the elements that are the maximum on the prefix ending at that element. More formally, the elementa i a_iaiis a prefix maximum ifa i > a j a_i > a_jai>ajfor everyj < i j < ij<i.

Similarly, suffix maximums are defined, the elementa i a_iaiis a suffix maximum ifa i > a j a_i > a_jai>ajfor everyj > i j > ij>i.

You need to output the number of different permutations that could have been guessed.

As this number can be very large, output the answer modulo1 0 9 + 7 10^9 + 7109+7.

感觉好经典的模型,没有想出来是因为一直在纠结两部分分开处理的情况下发生重复怎么办。。

实际上我们可以发现,只要先用组合数C CC选出一部分数字放在左边,剩下的部分放在右边,则两部分一定不会发生重复

但是一定存在一种方案使得它们摆放起来满足方案吗?

答案是YES,这个自己手玩一下就可以发现了,数量够的情况下,排列中的数字两两不同,则总会存在一种方式使得摆放是正确的。

因此分开考虑是合法的。

接下来就是单独考虑左边,我们从右向左(从高到低)遍历p pp数组,可以发现每两个相邻的下标中间存在着一些 gap,我们选择一些比 p[i] 和 p[i + 1] 都要小的数字填充这些 gap(全排列),所以就是comb(p[i + 1] - 2, p[i + 1] - p[i] - 1);

这里的 -2 是因为最大值和次大值已经放在了 p[i] 和 p[i + 1] 的位置,故,必须-2.

最后代码如下:

intqpow(inta,intk){a%=mod;i64 res=1%mod;while(k){if(k&1)res=(i64)res*a%mod;a=(i64)a*a%mod;k>>=1;}returnres;}intinv(intx){returnqpow(x,mod-2);}structComb{intn;vector<int>fac,invfac,pow2;Comb():n(0){}Comb(int_n):n(0){init(_n);}voidinit(intm){if(m<=n)return;fac.resize(m+1);invfac.resize(m+1);pow2.resize(m+1);pow2[0]=1;for(inti=1;i<=m;i++){pow2[i]=(int)(pow2[i-1]*2LL)%mod;}intstart=n>0?n+1:1;if(n==0){fac[0]=invfac[0]=1;}for(inti=start;i<=m;i++){fac[i]=(int)((i64)fac[i-1]*i%mod);}invfac[m]=qpow(fac[m],mod-2);for(inti=m;i>(n==0?1:n);i--){invfac[i-1]=(int)((i64)invfac[i]*i%mod);}n=m;}// fac[m]intF(intm){if(m>n)init(2*m);returnfac[m];}// invfac[m]intiF(intm){if(m>n)init(2*m);returninvfac[m];}// inv[m] = m^{-1}intinv(intm){returnqpow(m,mod-2);}// pow(2, n)intP2(intm){if(m<=n)returnpow2[m];returnqpow(2,m);}// A(n, m) = n! / (n - m)!intA(intn_,intm_){if(m_<0||m_>n_)return0;if(n_>n)init(2*n_);return(int)((i64)fac[n_]*invfac[n_-m_]%mod);}// C(n, m) = n! / (m! * (n - m)!)intC(intn_,intm_){if(m_<0||m_>n_)return0;if(n_>n)init(2*n_);return(int)((i64)fac[n_]*invfac[m_]%mod*invfac[n_-m_]%mod);}};Combcomb(1e6);voidsolve(){intn,m1,m2;cin>>n>>m1>>m2;vector<int>p(m1+1),s(m2+1);for(inti=1;i<=m1;i++){cin>>p[i];}for(inti=1;i<=m2;i++){cin>>s[i];}if(s[m2]!=n||p[1]!=1||s[1]!=p[m1]){cout<<0<<endl;return;}intans=comb.C(n-1,p.back()-1);for(inti=m1-1;i>=1;i--){intg=p[i+1]-p[i]-1;(ans*=comb.C(p[i+1]-2,g)*comb.F(g)%mod)%=mod;}for(inti=1;i<=m2-1;i++){intg=s[i+1]-s[i]-1;(ans*=comb.C(n-s[i]-1,g)*comb.F(g)%mod)%=mod;}cout<<ans<<endl;}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 13:40:44

基于单片机的智能头盔的设计与实现

第一章 系统开发背景与意义 在摩托车、电动车及骑行运动中&#xff0c;头盔是保障头部安全的核心装备&#xff0c;但传统头盔仅具备物理防护功能&#xff0c;无法应对骑行中的动态风险&#xff08;如碰撞预警、疲劳驾驶、摔倒救援&#xff09;。据统计&#xff0c;约70%的骑行…

作者头像 李华
网站建设 2026/4/22 22:08:08

基于STM32单片机设计的门禁系统

第一章 系统整体架构设计 基于STM32单片机的门禁系统&#xff0c;旨在实现人员身份精准识别、权限管控与安全预警&#xff0c;核心架构分为身份识别模块、核心控制模块、执行模块及报警模块四大单元。身份识别模块负责采集人员身份信息&#xff0c;核心控制模块以STM32单片机为…

作者头像 李华
网站建设 2026/4/19 19:52:44

基于单片机的智能窗帘的设计

第一章 系统整体架构设计 基于单片机的智能窗帘&#xff0c;核心目标是实现自动控制与便捷操作&#xff0c;满足用户多样化场景需求&#xff0c;整体架构分为环境感知模块、核心控制模块、驱动执行模块、人机交互模块四大单元。环境感知模块负责采集光照强度、人体存在等环境信…

作者头像 李华
网站建设 2026/4/23 18:21:29

OPCDA转OPCUA工具软件:一个现代工业数据传输的解决方案

OPCDA转OPCUA工具软件。 以前许多老工程都是使用的DA Server。 本软件采用OPC Client读取数据并转换为UA Server。 支持读取选择的Item到UAserver;也支持选择Node回写到DAserver,也即具有双向传送功能。在工业自动化领域&#xff0c;数据传输和管理一直是关键挑战。传统的DA S…

作者头像 李华
网站建设 2026/4/19 12:17:47

当算法开始审标书:中小企业规避“串标误判“的实战指南

2024年11月28日&#xff0c;通报的一起案件&#xff0c;让投标圈炸了锅。两家分别来自陕西和兰州的技术公司&#xff0c;参加银川某设备采购项目。监管部门用大数据分析发现&#xff1a;它们的投标文件IP地址完全相同。两家公司最终承认串标&#xff0c;被处中标金额5.5%-6%的罚…

作者头像 李华
网站建设 2026/4/18 13:26:40

【医学图像算法手册004】ResNet 与 DenseNet 的结构原理与医学图像应用

【医学图像算法手册004】ResNet 与 DenseNet 的结构原理与医学图像应用 概述 在医学图像分析中,卷积神经网络通常需要具备较大的感受野和较强的特征表达能力,以刻画器官结构、病灶形态及其上下文关系。单纯通过增加网络深度来提升表达能力,往往会引入训练不稳定和性能退化…

作者头像 李华