首页 > 其他分享 >游游的排列统计(携程24秋招研发岗第一批)

游游的排列统计(携程24秋招研发岗第一批)

时间:2024-04-12 10:22:58浏览次数:20  
标签:24 int 游游 num static 秋招 new primes MAXN

题面

核心思想

素数筛先预处理出20以内的素数
然后用全排列的思想去做就好了,就是多了个判断。

代码

import java.util.*;

public class Main {
    static final int MAXN = (int) (21);
    static int[] isNotPrime = new int[21];
    static int[] v = new int[11];
    static List<Integer> cur = new ArrayList<>();
    static int res = 0;
    public static void main(String[] args) {
        final long MOD = (long) (1e9 + 7);

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

        //欧拉筛 MAXN = 21
        List<Integer> primes = new ArrayList<>();
        for(int i = 2; i < MAXN; i++){
            if(isNotPrime[i] == 0)
                primes.add(i);
            for(int num: primes){
                if(i * num >= MAXN)
                    break;
                isNotPrime[i * num] = 1;
                if(i % num == 0)
                    break;
            }
        }

        helper(n);

        System.out.println(res);
    }

    static void helper(int n){
        if(cur.size() == n){
           res ++;
        }
        for(int i = 1; i <= n; i++){
            if(v[i] == 1) // 访问标记
                continue;
            // 是空 或者 当前选择的 i 加上 最后一个数 不是素数
            if(cur.isEmpty() || isNotPrime[i + cur.get(cur.size() - 1)] == 1){
                cur.add(i);
                v[i] = 1;
                helper(n);
                cur.remove(cur.size() - 1);
                v[i] = 0;
            }
        }
    }

}

标签:24,int,游游,num,static,秋招,new,primes,MAXN
From: https://www.cnblogs.com/ganyq/p/18130623

相关文章

  • 【2024-04-11】想换电脑
    20:00读书要用两只眼睛,一-只看纸面上的,另一只看纸的背面。                                                 ——俞鸿儒今天一位同事换了新电脑,喊我过去看了一下,嗯,还......
  • 52 Things: Number 24: Describe the binary, m-ary and sliding window exponentiati
    52Things:Number24:Describethebinary,m-aryandslidingwindowexponentiationalgorithms.52件事:第24件:描述二进制、m进制和滑动窗口求幂算法。 Thisisthelatestinaseriesofblogpoststoaddressthelistof '52ThingsEveryPhDStudentShouldKnow......
  • 2024.4.11
    所学时间:2小时代码行数:81博客园数:1篇所学知识:我的结对作业伙伴是龚涵彬,我们今天写迪杰斯特拉算法,用来解决最短路径问题,定义了一个名为Dijkstra的类,其中包含了计算最短路径的静态方法calculate和一些辅助方法。类中使用了HashMap<Station,Result>result来存储每个站点到目标......
  • 2024年3月文章一览
    2024年3月编程人总共更新了12篇文章:1.2024年2月文章一览2.ProgrammingAbstractionsinC阅读笔记:p308-p3113.ProgrammingAbstractionsinC阅读笔记:p312-p3264.ProgrammingAbstractionsinC阅读笔记:p327-p3305.ProgrammingAbstractionsinC阅读笔记:p331-p3376.《自动......
  • 2024.04.11 树上问题回顾
    2024.04.11树上问题回顾P2015二叉苹果树树形背包板子题。需要注意的是,枚举儿子\(v\)的选择数量\(k\)时,一定要先转移\(k=0\)的情况,否则就会用新状态来重复更新新状态,违背\(0/1\)背包的思路。#include<bits/stdc++.h>usingnamespacestd;template<typenameT>in......
  • 2024/4/11
    今天大盘低开高走下午又低走,收红出上影线,这个反弹时之前预见的--市场连续下跌且到3000附件,又反弹的需求,高开低走且缩量,说明市场信心不足,调整大概率没有到位今天要批评一下自己,昨天明确说了大盘没有企稳,不要开仓,但是今天一反弹,尤其时工程机械汽车板块 东方电气快速拉升,因为前面......
  • Java基础学习 | 2024年4月11日
    变量1.类变量(静态变量):前面用static修饰,表示所有子类都共用同一个属性值,可以直接用类名来访问静态变量,也可以通过实例名来访问静态变量。即无论创建多少个类实例,静态变量在内存中只有一份拷贝,被所有实例共享。举例:点击查看代码publicclassMyClass{publicstaticintc......
  • __int1024
    __int1024手搓结构体整合高精(其实还可以更大改下数组就行)Elaina'scode#include<iostream>#include<string.h>#include<stdio.h>#include<cstdlib>#include<algorithm>#definebase100000#definecut5#defineL1024usingnamespacestd;st......
  • 2024.4.11
    2024.4.11【虚怀若谷,戒骄戒躁。】Thursday三月初三<theme=oi-"language">这个好东西叫pb_ds!!!#include<bits/extc++.h>usingnamespace__gnu_cxx;usingnamespace__gnu_pbds;堆操作/数据结构配对堆二叉堆左偏树二项堆斐波那契堆代码pairing_heap_t......
  • 树上交换节点(OPPO23届秋招-后端真题)
    题面核心思想这道题跟树没有任何关系。。。样例的2143直接在数组交换为1234就可以了。那么只要当前下标i与nums[i]不相等我们就交换比如512341!=5交换为->412351!=4交换为->312451!=3交换为->213451!=2交换为->12......