zoukankan      html  css  js  c++  java
  • 【NOIP2016提高A组模拟8.17】(雅礼联考day1)Matrix

    题目

    这里写图片描述

    分析

    假设,我们从(F_{i,2})出发,那么对(F_{n,n})的贡献就是(某个系数乘以a^{n-i}b^{n-1}r_i)
    同理,如果从(F_{2,i})出发,那么对(F_{n,n})的贡献就是(某个系数乘以a^{n-1}b^{n-i}l_i)
    那么某个系数是什么呢?
    感性理解一下,就是从出发点到(n,n)的方案数(C_{2*n-i-2}^{n-i})
    那么答案就是$$sum_{i-2}{n}C_{2*n-i-2}{n-i}(a{n-1}b{n-i}l_i+a{n-i}b{n-1}r_i)$$

    #include <cmath>
    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    #include <algorithm>
    #include <queue>
    const long long maxlongint=2147483647;
    const long long mo=1000000007;
    const long long N=100005;
    using namespace std;
    long long l[N],r[N],a[N],b[N],jc[N*2],n,ny[N*2];
    long long mi(long long x,long long y)
    {
    	long long sum=1;
    	while(y)
    	{
    		if(y&1) sum=sum*x%mo;
    		x=x*x%mo;
    		y/=2;
    	}
    	return sum;
    }
    int main()
    {
    	scanf("%lld%lld%lld",&n,&a[1],&b[1]);
    	for(long long i=1;i<=n;i++) scanf("%lld",&l[i]);
    	for(long long i=1;i<=n;i++) scanf("%lld",&r[i]);
    	jc[0]=1;
    	for(long long i=1;i<=n*2;i++)
    	{
    		jc[i]=jc[i-1]*i%mo;
    	}
    	a[0]=b[0]=1;
    	for(long long i=2;i<=n;i++)
    	{
    		a[i]=a[i-1]*a[1]%mo;
    		b[i]=b[i-1]*b[1]%mo;
    	}
    	long long ans=0;
    	for(int i=2;i<=n;i++)
    	{
    		int sum=jc[2*n-i-2]*mi(jc[n-i],mo-2)%mo*mi(jc[n-2],mo-2)%mo;
    		sum=sum*(a[n-1]*b[n-i]%mo*l[i]%mo+a[n-i]*b[n-1]%mo*r[i]%mo)%mo;
    		ans=(ans+sum)%mo;
    	}
    	printf("%lld
    ",ans);
    }
    
    
  • 相关阅读:
    DAY9 函数初识(各种参数的用法)
    CSS背景
    HTML/CSS 练习
    从JDBC到commons-DBUtils
    SQL
    MYSQL数据库基本操作
    JDBC
    Stream数据流(Collection接口扩充)
    Stack栈
    Map集合接口
  • 原文地址:https://www.cnblogs.com/chen1352/p/9045296.html
Copyright © 2011-2022 走看看