首页 > 其他分享 >小红的小红树(小红书24秋招后端开发)

小红的小红树(小红书24秋招后端开发)

时间:2024-04-09 15:11:58浏览次数:24  
标签:24 小红书 next int static 秋招 new 节点 isNotPrime

题面

核心思想

首先我们任选一个节点为根节点

两数和为质数 只能染其中一个,那染父节点和儿子节点呢?

当然是贪心的只染儿子节点,因为儿子节点只有一个父节点,染了儿子节点也不会和其他节点产生冲突。

所以这样思考的话,我们自底向上的递归,只要相邻节点满足条件 则答案+1

题面

import java.util.*;
import java.util.function.Consumer;

public class Main {

    static boolean[] isNotPrime; // true 表示为合数
    static int[] value;
    static List<Integer>[] next;
    static int res;
    public static void main(String[] args) {
        final long MOD = (long) (1e9 + 7);
        // 题目数据 a 最大为1e5 两数相加最大2e5 所以我们只需要筛出2e5之前的素数即可
        final int MAXN = (int) (2e5 + 10);

        // 欧拉筛
        isNotPrime = new boolean[MAXN];
        List<Integer> primes = new ArrayList<>();

        for(int i = 2; i < MAXN; i++){
            if(!isNotPrime[i])
                primes.add(i);
            for(int prime: primes){
                if(i * prime >= MAXN)
                    break;
                isNotPrime[i * prime] = true;

                if(i % prime == 0)
                    break;
            }
        }

        Scanner scanner = new Scanner(System.in);
        int n  = scanner.nextInt();

        value = new int[n + 1];
        next = new List[n + 1];

        //保存节点值
        for(int i = 1; i <= n; i++) {
            value[i] = scanner.nextInt();
            next[i] = new ArrayList<>();
        }
        //建树
        for(int i = 1; i < n; i++) {
            int x = scanner.nextInt();
            int y = scanner.nextInt();
            next[x].add(y);
            next[y].add(x);
        }

        // 把1看作根节点
        dfs(1, -1);
        System.out.println(res);
    }

    private static void dfs(int cur, int pre){
        for(int nxt: next[cur]){
            if(nxt == pre) // pre为父节点 防止反走
                continue;
            dfs(nxt, cur);

            int check = value[cur] + value[nxt];
            //能染就染 反正染的是儿子节点 不关父节点的事
            if(!isNotPrime[check]){
                res++;
            }
        }
    }
}

标签:24,小红书,next,int,static,秋招,new,节点,isNotPrime
From: https://www.cnblogs.com/ganyq/p/18124015

相关文章

  • 2024年超声波清洗机品牌排行榜前十名、国内清洗机十大排行榜推荐
    急着洗眼镜的朋友先不要慌,虽然洗眼镜是日常生活中最常见的操作,但是在清洗眼镜方面也是有讲究的,不是随随便便把眼镜擦一下就算清洁干净了!因为我们拿眼镜布擦眼镜的时候,布料粗糙的微粒就会跟砂纸一样打磨着镜片,这也是为什么眼镜戴久之后都磨花刮花的原因!所以说超声波眼镜清洗机的......
  • 美国新冠疫情日数据正在更新中!可以下载「.xls」2020-2024年美国疫情大数据查询
    美国新冠疫情日数据,数据更新至2024/4/97:06:08美国新冠疫情昨日数据正在更新:新增是923例。再看一下各州吧:New-York新冠疫情昨日新增是:504发一个美国的新增总图:15个月的折线趋势图2020-2024年美国疫情大数据查询及下载EXCEL表:发一个20天的美国疫情数据表下......
  • 小红的分享日常(小红书24秋招后端开发)
    题面核心思想背包问题变种定义一个三维数组dp[i][t][h]表示前i个事件在时间剩余t精力剩余h的最大快乐值每个事件考虑分享or不分享,然后取最大值代码importjava.util.*;publicclassMain{publicstaticvoidmain(String[]args){finallongMOD=(l......
  • 涨粉秘籍大公开!小红书新手也能秒变网红!
    ......
  • 外接存储设备数据丢失怎么办?(2024年恢复策略)
    在数字化时代,外接存储设备已经成为我们生活和工作中不可或缺的一部分。然而,无论是因为意外删除、格式化、病毒感染还是设备故障,数据丢失都可能是我们不得不面对的问题。当外接存储设备中的数据突然消失时,我们往往会感到焦虑和无助。本文旨在为大家提供关于外接存储设备数据丢失......
  • 2024.4.9 AVX加速卷积part2
    AVX加速卷积part2重新构筑下昨天的想法:问题:源程序在O2下的执行时间:经过AVX改进后的执行时间:下面尝试在AVX2基础上改进:AVX与AVX2的主要区别和改进:向量整数指令:AVX主要集中在浮点数运算上,提供了对256位宽SIMD(单指令多数据)向量的支持。AVX2引入了向量整数运算的支持。这......
  • 2024年第 6 期《Python 测试平台开发》进阶课程(4月23号开学)
    2024年第6期《Python测试平台开发》进阶课程主讲老师:上海-悠悠上课方式:微信群视频在线教学,方便交流本期上课时间:4月23号(周二、四晚上21:00-22:30)报名费:报名费3800一人(之前学过《python接口+测试开发》课程的同学可优惠!)联系微信/QQ:283340479课程环境:1.pycharm+python3.......
  • 20240409报错修改学习
    未配置SpringBoot配置注解处理器spring:datasource:druid:driver-class-name:com.mysql.jdbc.Driverurl:jdbc:mysql://localhost:3306/mini_springmvc?serverTimezone=UTCusername:rootpassword:1234mybatis-plus:global-config:......
  • 2024年失业率狂飙18.1%,史上最难就业季即将来临,该如何逆袭?_2024年失业潮
    【2024年被称为最难就业年,1158万大学生面临难题】距离2024年毕业季还剩不到4个月,毕业学员将面临空前严峻的就业压力!具国家统计局的数据显示,1-2月份,16至24岁年轻人的失业率飙到18.1%,也就是说,新毕业的大学生中,平均每5个人中就有1个找不到工作。而今年的大学毕业生高达1158万......
  • 聚水潭与金蝶云星空对接集成退货退款查询连通[聚水潭][销售退货单标准新增]-v1(聚水潭
    聚水潭与金蝶云星空对接集成退货退款查询连通[聚水潭][销售退货单标准新增]-v1(聚水潭--销售退货对接-P-12495392-这个店铺的数据)接入系统:聚水潭聚水潭是SaaS协同平台、电商ERP软件。聚水潭成立于2014年,创始人兼CEO骆海东拥有近三十年传统及电商ERP的研发和实施部署经验。......