当前位置: 首页 > news >正文

java网站建设广东网站seo策划

java网站建设,广东网站seo策划,网页可视化编辑软件,采购网上商城题目大意 考虑所有 n n n行 m m m列的矩阵,矩阵中每个元素的值都在 1 1 1到 k k k之间。对于这样的矩阵 A A A,按照下面规则构造序列 x 1 , x 2 , ⋯ , x n m x_1,x_2,\cdots,x_{nm} x1​,x2​,⋯,xnm​: 对于 1 ≤ i ≤ n 1\leq i\leq n …

题目大意

考虑所有 n n n m m m列的矩阵,矩阵中每个元素的值都在 1 1 1 k k k之间。对于这样的矩阵 A A A,按照下面规则构造序列 x 1 , x 2 , ⋯ , x n + m x_1,x_2,\cdots,x_{n+m} x1,x2,,xn+m

  • 对于 1 ≤ i ≤ n 1\leq i\leq n 1in x i x_i xi A A A中第 i i i行的最大值
  • 对于 1 ≤ i ≤ m 1\leq i\leq m 1im x n + i x_{n+i} xn+i A A A中第 i i i列的最大值

求能构造出多少种不同的序列。

输出答案模 1 0 9 + 7 10^9+7 109+7后的值。

T T T组数据。

1 ≤ T ≤ 1000 , ∑ n , ∑ m ≤ 1 0 5 , k ≤ 1 0 9 1\leq T\leq 1000,\sum n,\sum m\leq 10^5,k\leq 10^9 1T1000,n,m105,k109

时间限制 3000 m s 3000ms 3000ms,空间限制 512 M B 512MB 512MB


题解

首先,我们可以发现, x 1 x_1 x1 x n x_n xn的最大值要等于 x n + 1 x_{n+1} xn+1 x n + m x_{n+m} xn+m的最大值。

然而,当 x 1 x_1 x1 x n x_n xn的最大值和 x n + 1 x_{n+1} xn+1 x n + m x_{n+m} xn+m的最大值相等时,这个序列一定合法。

为什么呢?我们可以把最大值的列和最大值的行相交的位置填上最大值,在这一行的其他位置填上其他数来满足列的要求,在这一列的其他位置填上其他数来满足行的要求,并在其他位置填 1 1 1,即可构造出这个序列。

我们可以枚举最大值来计算答案。

a n s = ∑ i = 1 k [ i n − ( i − 1 ) n ] × [ i m − ( i − 1 ) m ] ans=\sum\limits_{i=1}^k[i^n-(i-1)^n]\times [i^m-(i-1)^m] ans=i=1k[in(i1)n]×[im(i1)m]

这样做是 O ( k log ⁡ n ) O(k\log n) O(klogn)的,我们考虑优化。

我们可以发现,这是一个关于 k k k n + m n+m n+m次多项式,那么整个和式就是一个关于 k k k n + m + 1 n+m+1 n+m+1次多项式。那么,我们计算出前 n + m + 2 n+m+2 n+m+2项之后,用拉格朗日差值法,就可以优化到 O ( n 2 ) O(n^2) O(n2)

因为差值的时候, i i i的取值是连续的,那么差值的式子为

f ( x ) = ∑ i = 1 N y i ∏ j = 1 , j ≠ i N x − j i − j = ∑ i = 1 N y i × ∏ j = 1 , j ≠ i N x − j ∏ j = 1 , j ≠ i N i − j f(x)=\sum\limits_{i=1}^Ny_i\prod\limits_{j=1,j\neq i}^N\dfrac{x-j}{i-j}=\sum\limits_{i=1}^Ny_i\times \dfrac{\prod\limits_{j=1,j\neq i}^Nx-j}{\prod\limits_{j=1,j\neq i}^Ni-j} f(x)=i=1Nyij=1,j=iNijxj=i=1Nyi×j=1,j=iNijj=1,j=iNxj

其中 N = n + m + 2 N=n+m+2 N=n+m+2

对后面的式子,我们考虑如何快速来求。

∏ j = 1 , j ≠ i N i − j = ( ∏ j = 1 i − 1 i − j ) × ( ∏ j = i + 1 N i − j ) = ( i − 1 ) ! × ( N − i ) ! × ( − 1 ) N − i \prod\limits_{j=1,j\neq i}^Ni-j=(\prod_{j=1}^{i-1}i-j)\times (\prod\limits_{j=i+1}^Ni-j)=(i-1)!\times (N-i)!\times (-1)^{N-i} j=1,j=iNij=(j=1i1ij)×(j=i+1Nij)=(i1)!×(Ni)!×(1)Ni

预处理出每个数的阶乘,这部分就可以 O ( 1 ) O(1) O(1)求出。

x > N x>N x>N时, ∏ j = 1 , j ≠ i N x − j = ( ∏ j = 1 N x − j ) × 1 x − i \prod\limits_{j=1,j\neq i}^Nx-j=(\prod\limits_{j=1}^Nx-j)\times \dfrac{1}{x-i} j=1,j=iNxj=(j=1Nxj)×xi1,其中 ∏ j = 1 N x − j \prod\limits_{j=1}^Nx-j j=1Nxj可以在插值之前 O ( n ) O(n) O(n)求出, 1 x − i \dfrac{1}{x-i} xi1可以用逆元来求。

x ≤ N x\leq N xN时,我们一开始已经计算出来了,这部分可以直接输出。

那么,分子就可以 O ( log ⁡ n ) O(\log n) O(logn)求出。

这样,我们就可以把拉格朗日插值的时间复杂度降到 O ( n log ⁡ n ) O(n\log n) O(nlogn)

总时间复杂度为 O ( ∑ n log ⁡ n ) O(\sum n\log n) O(nlogn)

code

#include<bits/stdc++.h>
using namespace std;
const int N=200005;
const long long mod=1e9+7;
int T;
long long n,m,k;
long long ans,x[N+5],y[N+5],jc[N+5];
long long mi(long long t,long long v){if(!v) return 1;long long re=mi(t,v/2);re=re*re%mod;if(v&1) re=re*t%mod;return re;
}
void init(){jc[0]=1;for(int i=1;i<=N;i++) jc[i]=jc[i-1]*i%mod;
}
long long gt(long long vx){long long re=0,wt=1;for(int i=1;i<=n+m+2;i++){wt=wt*((vx-x[i]+mod)%mod)%mod;}for(int i=1;i<=n+m+2;i++){long long p,q;p=y[i]*wt%mod*mi((vx-x[i]+mod)%mod,mod-2)%mod;if(n+m+2-i&1) q=(mod-jc[i-1]*jc[n+m+2-i]%mod)%mod;else q=jc[i-1]*jc[n+m+2-i]%mod;re=(re+p*mi(q,mod-2)%mod)%mod;}return re;
}
int main()
{init();scanf("%d",&T);while(T--){scanf("%lld%lld%lld",&n,&m,&k);ans=0;for(int i=1;i<=n+m+2;i++){x[i]=i;y[i]=(y[i-1]+(mi(i,n)-mi(i-1,n))*(mi(i,m)-mi(i-1,m))%mod+mod)%mod;}if(k<=n+m+2) printf("%lld\n",y[k]);else printf("%lld\n",gt(k));}return 0;
}
http://www.hkea.cn/news/970473/

相关文章:

  • 网站建设与管理简介网站链接交易
  • 英文网站建设教程网盘资源搜索神器
  • 做旅游网站的引言最新网络推广平台
  • 服务器上给网站做301跳转企业网站注册
  • 网站建设好做吗乐事薯片软文推广
  • wordpress 年月归档如何优化培训体系
  • 威海高区建设局网站长春做网络优化的公司
  • 安平做网站百度一下首页百度一下知道
  • 苏州建设网站市政中标项目如何做推广引流赚钱
  • 17网站一起做网店怎么下单来宾网站seo
  • 建设商务网站的目的天津seo网站排名优化公司
  • 阿里巴巴网站导航栏怎么做口碑营销策划方案
  • 线上做交互的网站百度app下载
  • 做暖暖欧美网站挖掘爱站网
  • 网站 风格百度推广公司
  • 林州网站建设公司站长工具关键词排名怎么查
  • 想给公司做个网站微信seo是什么意思
  • 网站做管制户外刀具营销推广方案模板
  • 淘宝客网站免费做seo网站关键词优化机构
  • 企业做网站建设的好处seo网站关键词优化
  • 一般网站用什么做的最新新闻国内大事件
  • 做线上网站需要钱吗互联网营销推广
  • 找个美工做淘宝网站需要多少钱南昌seo方案
  • 网站用户登录流程图外贸高端网站设计公司
  • 做搜狗手机网站优化软代写
  • wordpress页面背景颜色win7优化设置
  • 做分类信息网站代码百度搜索推广优化师工作内容
  • 南京网站开发公司关键词推广
  • 合水口网站建设百度指数明星人气榜
  • 上传网站图片处理推广软件免费