普及练习场 字符串处理 拼数

来源:互联网 发布:sql reference 编辑:程序博客网 时间:2024/05/29 18:06

题目链接

题意理解

笑出声,这不是昨天才写的吗?就一个dfs就好了。

代码

import java.math.BigInteger;import java.util.Scanner;public class Main {    static BigInteger result = new BigInteger("0");    static boolean[] visited;    static String[] numList;    public static void main(String[] args) {        Scanner scanner = new Scanner(System.in);        int n = scanner.nextInt();        numList = new String[n];        visited = new boolean[n];        for(int i = 0; i < n; i++) {            numList[i] = scanner.next();            visited[i] = false;        }        scanner.close();        dfs(n, n, "");        System.out.println(result);    }    private static void dfs(int maxn, int k, String s) {        if(k == 0) {            if(s.equals("")) {                return;            }            if(new BigInteger(s).compareTo(result) > 0) {                result = new BigInteger(s);            }            return;        }        for(int i = 0; i < maxn; i++) {            if(!visited[i]) {                s += numList[i];                visited[i] = true;                dfs(maxn, k - 1, s);                visited[i] = false;                s = s.substring(0, s.length() - numList[i].length());            }        }    }}

欢迎加入“不会算法一群菜鸟”,群号是⑥⑥①⑨②2025,这是我设置的一道很低的门槛用来阻止广告的。入群的验证暗号是:我爱编译原理