AcWing 1026. 乘积最大 暴搜 DFS
⭐ 乘积最大


🤠 DFS参数 数位 乘号 结果
import java.util.Scanner;
public class Main
{
static int n, ans;
static String s;
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
n = sc.nextInt();
int k = sc.nextInt();
s = sc.next();
dfs(0, k, 1);
System.out.println(ans);
}
// x 是第几位数,k是还剩下多少个 乘号,sum 是结果
private static void dfs(int x, int k, int sum)
{
// 当数位用完了,或者乘号用完了
if (x >= n | k < 0)
{
if (k < 0)
ans = Math.max(ans, sum);
return;
}
int ss = 0;
for (int i = x; i < n; i++)
{
ss = ss * 10 + s.charAt(i) - '0';
dfs(i + 1, k - 1, sum * ss);
}
}
}

浙公网安备 33010602011771号