有没有好心人帮忙康康呀!
查看原帖
有没有好心人帮忙康康呀!
311502
逸之为一楼主2021/10/13 19:11

代码 搜索思路

#include<bits/stdc++.h>
using namespace std;
const int MAXS = 100 ;
int A[MAXS] ;
int N , K ;
int Ans ;
char S ;
void DFS(int X , int ANS , int P){
	if(X == K){
		int SUM = 0 ;
		for(int i = P + 1 ; i <= N ; i ++ ){
			SUM = SUM * 10 ;
			SUM += A[i] ;
		}Ans = max ( ANS * SUM , Ans ) ;
		return ; 
	}for(int i = P + 1 ; i <= N - K + X ; i ++ ){
		int SUM = 0 ;
		for(int l = P + 1 ; l <= i ; l ++ ){
			SUM = SUM * 10 ;
			SUM += A[l] ;
		}DFS(X + 1 , ANS * SUM , i ) ;
	}return ; 
}int main(){
	cin >> N >> K ;
	for(int i = 1 ; i <= N ; i ++ ){
		cin >> S ;
		A[i] = S - '0' ;
	}DFS( 0 , 1 , 0) ;
	cout<< Ans << endl; 
	return 0 ;
} 
2021/10/13 19:11
加载中...