喵呜~
  • 板块灌水区
  • 楼主lucy2012
  • 当前回复5
  • 已保存回复5
  • 发布时间2024/8/9 19:08
  • 上次更新2024/8/9 20:16:45
查看原帖
喵呜~
1252442
lucy2012楼主2024/8/9 19:08

题目喵~按题解写的却错啦。。喵呜~

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+7; 
string s;
int n,k,a[30],dp[30][1010],num;
int main(){
    cin>>n>>k;
    for(int i=1;i<=26;i++){
    	cin>>a[i];
	}
	cin>>s;
	for(int i=0;i<n;i++){
		a[s[i]-'a'+1]--;
	}
	num=k-n;
	for(int i=0;i<=min(a[1],num);i++){
		dp[1][i]=1;
	}
	for(int i=2;i<=26;i++){
		if(a[i]<0){
			cout<<"NO SOLUTION!";
			return 0;
		}
		for(int j=1;j<=num;j++){
			for(int k=0;k<=min(a[i],j);k++){
				dp[i][j]=(dp[i][j]+dp[i-1][j-k])%mod;
			}
		}
	}
	cout<<dp[26][num];
    return 0;
}
2024/8/9 19:08
加载中...