金山云第二题,最后一分钟写的也没机会放上去了!!!!!!!!

我急死了我急死了

思路:x可以取a,b,c,对应的花费的value为1,2,3,可以理解为left=t-3-lose*value,left可以由除了x以外的剩下两个怎么组成,找出组合最小的和最大的即可。

心得:从此以后,只信自己。

public class num2 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        char x = in.next().charAt(0);
        int v = in.nextInt();
        int t = in.nextInt();
        System.out.println(getans(x+"",v,t));
    }

    public static String getans(String x,int lose,int t){
        //去除成功的结果
        t=t-3;
        //t由1到3组成
        //几个3 几个2 几个1
        if(x.equals("a")){
            ans=new ArrayList<>();
            t=t-lose*1;
            Path=new int[3];
            //不需要考虑a
            Path[0]=lose;
            gg(0,t,0);
        }
        if(x.equals("b")){
            ans=new ArrayList<>();
            t=t-lose*2;
            Path=new int[3];
            //不需要考虑a
            Path[1]=lose;
            gg(0,t,1);
        }
        if(x.equals("c")){
            ans=new ArrayList<>();
            t=t-lose*3;
            Path=new int[3];
            //不需要考虑a
            Path[2]=lose;
            gg(0,t,2);
        }
        Integer max=Integer.MIN_VALUE;
        Integer min=Integer.MAX_VALUE;
        for(int n:ans){
            max=Math.max(max,n);
            min=Math.min(min,n);
        }
        return max+" "+min;
    }

    public static int[] Path;
    public static List<Integer> ans;
    public static void gg(int sum,int target,int noneed){
        if(sum>target){
            return;
        }
        if(sum==target){
            ans.add(Path[0]+Path[1]+Path[2]);
            return;
        }
        if(noneed==0){
            Path[1]=Path[1]+1;
            sum=sum+2;
            gg(sum,target,noneed);
            sum=sum-2;
            Path[1]=Path[1]-1;

            Path[2]=Path[2]+1;
            sum=sum+3;
            gg(sum,target,noneed);
            sum=sum-3;
            Path[2]=Path[2]-1;
        }

        if(noneed==1){
            Path[0]=Path[0]+1;
            sum=sum+1;
            gg(sum,target,noneed);
            sum=sum-1;
            Path[0]=Path[0]-1;

            Path[2]=Path[2]+1;
            sum=sum+3;
            gg(sum,target,noneed);
            sum=sum-3;
            Path[2]=Path[2]-1;
        }


        if(noneed==1){
            Path[0]=Path[0]+1;
            sum=sum+1;
            gg(sum,target,noneed);
            sum=sum-1;
            Path[0]=Path[0]-1;

            Path[1]=Path[1]+1;
            sum=sum+2;
            gg(sum,target,noneed);
            sum=sum-2;
            Path[1]=Path[1]-1;
        }
    }
}

全部评论
越急心理越慌,要淡定
点赞 回复 分享
发布于 2023-03-09 17:00 上海
写的很好啊,有点可惜了
点赞 回复 分享
发布于 2023-03-09 16:51 山东

相关推荐

好兄弟们,不愁找不到工作了,东哥还有10万骑手HC待发&nbsp;还有五险一金,话不多说我要去投递了
婉拒腾讯保洁岗:都让让,鄙人骑电动车贼溜,ssp骑手offer应该有我一份吧?在坐的谁赞同,谁反对?查看图片
点赞 评论 收藏
分享
1个小白:可以考虑投一下字节
点赞 评论 收藏
分享
评论
1
4
分享

创作者周榜

更多
牛客网
牛客企业服务