zoukankan      html  css  js  c++  java
  • Noi.ac #65题解

    题目链接

    (Solution:)

    (a,b)表示数,推一推,容易得到题设中的三角形即为
    (1)
    (a) (b)
    (a^2) (2ab) (b^2)
    (a^3) (3a^2b) (3ab^2) (a^3)
    ...
    容易看出它就是个帕斯卡三角形,直接组合数一波就没了
    证明?自证不难(反正我不会)
    其实感性理解起来也是挺显然的嘛(QwQ)
    粗略地证明一下:
    如果题目中不含(a,b),则由递推式可知即为帕斯卡三角
    再考虑(a,b)的影响:对于(f_{i,j})(a,b)分别被计算了(n-1,n-m)次,所以答案就是(C_n^ma^{n-1}b^{n-m})
    还要注意一下,这道题需要线性求逆元

    (Code:)

    #include<bits/stdc++.h>
    using namespace std;
    namespace my_std
    {
    	typedef long long ll;
    	typedef double db;
    	const db PI=acos(-1.0);
    	#define cp complex<db>
    	#define MP make_pair
    	#define fir first
    	#define sec second
    	#define fr(i,x,y) for(ll i=(x);i<=(y);i++)
    	#define pfr(i,x,y) for(ll i=(y);i>=(x);i--)
    	#define gfr(u) for(ll i=head[u];i;i=e[i].nxt)
    	#define pf prllf
    	inline ll read()
    	{
    		ll sum=0,f=1;
    		char ch=0;
    		while(!isdigit(ch))
    		{
    			if(ch=='-') f=-1;
    			ch=getchar();
    		}
    		while(isdigit(ch))
    		{
    			sum=(sum<<1)+(sum<<3)+(ch^48);
    			ch=getchar();
    		}
    		return sum*f;
    	}
    	inline void write(ll x)
    	{
    	    if(x<0)
    		{
    	    	putchar('-');
    			x=-x;
    		}
    	    if(x>9) write(x/10);
    	    putchar(x%10+'0');
    	}
    }
    using namespace my_std;
    const ll N=1e5+10,mod=1e9+9;
    ll t,n,m,a,b,mul[N],inv[N];
    inline ll ksmod(ll a,ll b)
    {
    	ll ans=1;
    	while(b)
    	{
    		if(b&1)
    		{
    			ans=(ans*a)%mod;
    		}
    		a=(a*a)%mod;
    		b>>=1;
    	}
    	return ans;
    }
    inline ll C(ll n,ll m)
    {
    	if(m>n) return 0;
        ll res=inv[m]*inv[n-m]%mod;
        res=res*mul[n]%mod;
        return res;
    }
    int main(void)
    {
    	mul[0]=inv[0]=1;
        for(ll i=1;i<=N;i++) mul[i]=mul[i-1]*i%mod;
        inv[N]=ksmod(mul[N],mod-2);
        for(ll i=N-1;i;i--) inv[i]=inv[i+1]*(i+1)%mod;
    	t=read();
    	while(t--)
    	{
    		a=read(),b=read(),n=read(),m=read();
    		write((((C(n-1,m-1)%mod)*ksmod(a,n-m)%mod)*ksmod(b,m-1)%mod)%mod);
    		putchar('
    ');
    	}
    	return 0;
    }
    
  • 相关阅读:
    2013软考最新大纲
    安卓的第二堂课
    安卓第一堂课
    VS2010的快捷键;VS2012变化的快捷键
    漂亮的表格样式大全
    ASCII说明和ASCII对照表
    Cookie学习笔记
    JavaScript实现功能全集
    1073-成绩排名
    1071-数字的空洞
  • 原文地址:https://www.cnblogs.com/lgj-lgj/p/12333134.html
Copyright © 2011-2022 走看看