当前位置: 代码迷 >> 综合 >> 51Nod 1119 机器人走方格 V2(组合数,逆元求解)
  详细解决方案

51Nod 1119 机器人走方格 V2(组合数,逆元求解)

热度:59   发布时间:2023-11-08 15:26:41.0

分析:
开始一直WA,看了半天看不出来,现在还是想不通

 ans=ans*jc(n)%Mod;ans=ans*Pow(jc(m),Mod-2)%Mod;ans=ans*Pow(jc(n-m),Mod-2)%Mod;

 ans*=jc(n)%Mod;ans*=Pow(jc(m),Mod-2)%Mod; ans*=Pow(jc(n-m),Mod-2)%Mod;

为什么上面一个对了,下面一个就不对。。。

参考:这里写链接内容

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
typedef long long ll;
const ll Mod=1e9+7;ll Pow(ll a,ll b){ll ans=1;while(b){if(b%2==1){ans=ans*a%Mod;}a=a*a%Mod;b=b/2;}return ans;
}
ll jc(ll x){ll t=1;for(ll i=1;i<=x;i++){t=t*i%Mod;}t=t%Mod;return t;
}ll C(ll n,ll m){ll ans=1;ans=ans*jc(n)%Mod;ans=ans*Pow(jc(m),Mod-2)%Mod;ans=ans*Pow(jc(n-m),Mod-2)%Mod;return ans;
}int main(){ios::sync_with_stdio(false);ll a,b;cin>>a>>b;//cout<<jc(4)<<endl;//cout<<Pow(2,3)<<endl;//组合数cout<<C(a+b-2,b-1)<<endl;return 0;
}