• 等边三角形


    蒜头君手上有一些小木棍,它们长短不一,蒜头君想用这些木棍拼出一个等边三角形,并且每根木棍都要用到。 例如,蒜头君手上有长度为 11,22,33,33 的4根木棍,他可以让长度为11,22 的木棍组成一条边,另外 22 跟分别组成 22条边,拼成一个边长为 33 的等边三角形。蒜头君希望你提前告诉他能不能拼出来,免得白费功夫。

    输入格式

    首先输入一个整数 n(3n20),表示木棍数量,接下来输入 nn 根木棍的长度 pi(1pi10000)。

    输出格式

    如果蒜头君能拼出等边三角形,输出"yes",否则输出"no"

    样例输入1

    5
    1 2 3 4 5

    样例输出1

    yes

    样例输入2

    4
    1 1 1 1

    样例输出2

    no



    每根火柴棒不是加在a边就是b边或者c边:
    import java.util.Scanner;
    
    public class Main {
        static int n;
        static int[] p;
        static int x;  //每条边应该的长度
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            n = sc.nextInt();
            
            p = new int[n];
            
            for(int i = 0; i < n; i ++)
                p[i] = sc.nextInt();
            
            int sum = 0;
            for(int i = 0; i < n; i ++) {
                sum += p[i];
            }
            
            if(sum % 3 != 0) {
                System.out.println("no");
                System.exit(0);
            }
            else {
                x = sum / 3;
            }
            
            if(dfs(0, 0, 0, 0))
                System.out.println("yes");
            else
                System.out.println("no");
            
        }
        private static boolean dfs(int a, int b, int c, int offset) {
            if(a == b && b == c && c == x) return true;
            if(a > x || b > x || c > x) return false;
            if(offset >= n) return false;
            if(dfs(a + p[offset], b, c, offset + 1) || dfs(a, b + p[offset], c, offset + 1) || dfs(a, b, c + p[offset], offset + 1))
                return true;
            return false;
        }
    }
    
    
    

      

    
    
  • 相关阅读:
    Sublime Text 3 绝对神器
    spring 笔记3: Spring 多环境配置文件切换
    elk-logstash: window下指定jdk目录
    通过slf4j/log4j的MDC/NDC 实现日志追踪
    spring 笔记2:Spring MVC : Did not find handler method for 问题的解决
    mysql一机多实例安装记录
    Java:通过反射复制父类字段到子类。
    mybatis研究:select性能对比
    spring " expected single matching bean but found 2" 问题一例。
    数组去重复
  • 原文地址:https://www.cnblogs.com/jizhidexiaobai/p/8432338.html
Copyright © 2020-2023  润新知