标签:memset http pre efi alt tor fine mat while
#include<iostream>
#include<vector>
#include<queue>
#include<algorithm>
#include<memory.h>
#include<cmath>
#include<map>
#include<set>
#define INF 0x3f3f3f3f
#define PII pair<int,int>
#define MAX_NODE 1000005;
using namespace std;
int p,q,k,a,b;
long long c[1005][1005];
long long pow_mod(long long a,long long b,long long mod)
{
int res=1;
while(b)
{
if(b&1)
{
res=res*a%mod;
}
a=a*a%mod;
b>>=1;
}
return res;
}
int main()
{
cin>>p>>q>>k>>a>>b;
for(int i=1;i<=k;i++)
c[i][0]=c[i][i]=1;
for(int i=2;i<=k;i++)
{
for(int j=1;j<i;j++)
{
c[i][j]=(c[i-1][j]+c[i-1][j-1])%10007;
}
}
long long part_A=pow_mod(p,a,10007);
long long part_B=pow_mod(q,b,10007);
long long before=part_A*part_B*c[k][a]%10007;
cout<<before<<endl;
return 0;
}
#include<iostream>
#include<stdio.h>
#include<vector>
#include<queue>
#include<algorithm>
#include<memory.h>
#include<cmath>
#include<map>
#include<set>
#define INF 0x3f3f3f3f
#define PII pair<int,int>
#define MOD 1000000007
using namespace std;
int n,p,q,k,a,b;
//这里只需要两维 否则空间超
//long long c[100005][55];
long long dp[2][100005];
long long ladu[100005];
long long pow_mod(long long a,long long b,long long mod)
{
int res=1;
while(b)
{
if(b&1)
{
res=res*a%mod;
}
a=a*a%mod;
b>>=1;
}
return res;
}
int main()
{
cin>>n>>k;
for(int i=1; i<=n; i++)
cin>>ladu[i];
sort(ladu+1,ladu+n+1);
long long ans=0;
if(k==1)
{
for(int i=1;i<=n;i++)
{
ans=(ans+ladu[i])%MOD;
}
cout<<ans<<endl;
return 0;
}
memset(dp,0,sizeof(dp));
dp[1][0]=dp[1][1]=dp[0][0]=dp[0][1]=1;
bool flag=0;
for(int i=2; i<=n; i++)
{
for(int j=1; j<=k-1; j++)
{
dp[flag][j]=(dp[!flag][j]+dp[!flag][j-1])%MOD;
}
if(i>=k)
ans=(ans+ladu[i]*dp[!flag][k-1]%MOD)%MOD;
flag=!flag;
}
cout<<ans<<endl;
return 0;
}
标签:memset http pre efi alt tor fine mat while
原文地址:http://www.cnblogs.com/wangkaipeng/p/6795564.html