啊啊啊啊啊!好久没A了,这次又是这一题有点问题!气死我了

急死了,我为什么不相信自己呢?

又去看其他思路了,应该用自己的方法。

这题如果过了那就是四题了

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=Integer.parseInt(in.nextLine());
        int[] nums=new int[n];
        String[] words=in.nextLine().split(" ");
        for(int i=0;i<n;i++){
            nums[i]=Integer.parseInt(words[i]);
        }
        char[] boo=in.nextLine().toCharArray();
        System.out.println(getans(nums,boo));
    }

    public static long getans(int[] nums,char[] boo){
        boolean[] used=new boolean[nums.length];
        ans=new ArrayList<>();
        tDFS(nums,boo,used,0,0);
        long t=Long.MIN_VALUE;
        for(int n:ans){
            t=Math.max(n,t);
        }
        return t;
    }

    public static List<Integer> ans;
    public static void tDFS(int[] nums,char[] boo,boolean[] used,int sum,int start){
        boolean flag=false;
        for(int i=start;i<nums.length-1;i++){
            if(used[i]||used[i+1]){
                continue;
            }
            if(boo[i]==boo[i+1]){
                continue;
            }
            flag=true;
            sum+=nums[i];
            sum+=nums[i+1];
            used[i]=true;
            used[i+1]=true;
            tDFS(nums,boo,used,sum,i+1);
            sum-=nums[i];
            sum-=nums[i+1];
            used[i]=false;
            used[i+1]=false;
        }
        if(flag==false){
            ans.add(sum);
            return;
        }
    }
}

全部评论
所以这是你事后诸葛亮想出来的答案吗
1 回复 分享
发布于 2023-03-13 16:10 河北
蹲个答案
点赞 回复 分享
发布于 2023-03-12 00:49 广东
数据量多少啊 会不会爆
点赞 回复 分享
发布于 2023-04-03 08:35 广东

相关推荐

2024-12-21 10:42
已编辑
江西软件职业技术大学 Java
新宿站不停:该提升学历就提升学历,菜了就多练。没事找牛马公司虐自己是吧? 谁没事说自己“经验少”,这不自己把自己塞剎鼻hr嘴里找🐴吗
点赞 评论 收藏
分享
评论
2
5
分享
牛客网
牛客企业服务