P5196 [USACO19JAN] Cow Poetry G


>>>int 可以 -> long long
>>>you mod no long long arrary ky have ll sum
>>>wu mod long long
//int 可以 -> long long //you mod no long long arrary ky have ll sum //wu mod long long #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<bits/stdc++.h> #define ll long long #define ddd printf("-----------------debug\n"); using namespace std; const int maxn=5555; const ll p=1e9+7; int n,m,k; int len[maxn],y[maxn]; int f[maxn][maxn],fdp[maxn],cnt[33]; ll ksm(int x,int b){//!!!!!!!!!!!!!!!!!!!!!!! ll res=1,a=x;//avoid exceed while(b) { if(b%2==1) res=res*a%p; a=a*a%p; b/=2;//!!!!!!!!!!!!!!!! } return res; } int main() { ios::sync_with_stdio(false); cin.tie(0); // cin>>n>>m>>k; scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=n;i++) scanf("%d%d",&len[i],&y[i]); fdp[0]=1; for(int i=1;i<=k;i++) { for(int j=1;j<=n;j++) { // if(i>=len[j]) // { fdp[i]=(fdp[i]+fdp[i-len[j]])%p;//shu zu jianfa f[i][y[j]]=(f[i][y[j]]+fdp[i-len[j]])%p; // } } } // ddd for(int i=1;i<=m ;i++) { getchar(); char ch=getchar(); ++cnt[ch-'A'+1]; // cout<<cnt[ch-'A'+1]<<endl; } ll ans=1;///////////// for(int i=1;i<=26;i++) { if(cnt[i]!=0) { ll tmp=0; for(int j=1;j<=n;j++) if(f[k][j]!=0) tmp=( tmp+ksm(f[k][j],cnt[i])%p )%p; ans=ans*tmp%p; } } cout<<ans; return 0; }

浙公网安备 33010602011771号