GDPU 竞赛技能实践 天码行空9

2024-04-27 21:44

本文主要是介绍GDPU 竞赛技能实践 天码行空9,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 埃式筛法

求区间[2, n]内所有的素数对

💖 Main.java

import java.util.Scanner;public class Main
{static int N = (int) 1e8, cnt = 0;static int[] p = new int[N];static boolean[] st = new boolean[N];public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();getPrimes(n);print();}private static void print(){for (int i = 0; i < cnt; i++)System.out.print(p[i] + " ");}private static void getPrimes(int n){for (int i = 2; i <= n && i < N; i++){if (!st[i]){p[cnt++] = i;for (int j = 2; j * i <= n; j++)st[i * j] = true;}}}}

在这里插入图片描述

2. 求第1亿个Fibonacci数

👨‍🏫 参考地址

💖 Main.java

public class Main
{static long n, p;//	龟速乘法(快速积)static long qmul(long a, long b){long res = 0;while (b != 0){if ((b & 1) == 1){res = (res + a) % p;}a = (a + a) % p;b >>= 1;}return res;}//	矩阵乘法static void mul(long[][] a, long[][] b){
//		临时矩阵暂存结果long[][] tmp = new long[2][2];for (int i = 0; i < 2; i++)for (int j = 0; j < 2; j++)for (int k = 0; k < 2; k++)tmp[i][j] = (tmp[i][j] + qmul(a[i][k], b[k][j])) % p;//		拷贝for (int i = 0; i < 2; i++)for (int j = 0; j < 2; j++)a[i][j] = tmp[i][j];}//	计算斐波那契数列的第 n 项static long F(long n){
//		极端情况if (n == 0)return 0;//		根据fn来进行构造矩阵// fn,分别为f(1) f(2)long[][] f = { { 1, 1 }, { 0, 0 } };// 累乘矩阵long[][] a = { { 0, 1 }, { 1, 1 } };//      快速幂for (long k = n - 1; k != 0; k >>= 1){if ((k & 1) == 1)mul(f, a);mul(a, a);}return f[0][0];}public static void main(String[] args){n = (int) 1e8;// 10^8 == 1 亿p = Integer.MAX_VALUE; // 由于会爆int long 需要取模System.out.println("前20项:");for (int i = 0; i < 20; i++)System.out.print(F(i) + " ");System.out.println();System.out.println("第1亿项:" + F(n));}
}

在这里插入图片描述

3.Catalan数

即卡特兰数又称卡塔兰数,是组合数学中一个常出现在各种计数问题中的数列,以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)的名字来命名。现请你写一段程序来计算Catalan数。
输入样例:

5

输出样例:

42

💖 Main.java

import java.util.Scanner;public class 卡特兰数
{static long cal(int n){long son = 1;long mum = 1;for (int i = 2 * n; i > n; i--)son *= i;for (int i = n; i >= 1; i--)mum *= i;return son / (mum * (n + 1));}public static void main(String[] args){Scanner sc = new Scanner(System.in);int n = sc.nextInt();System.out.println(cal(n));}
}

在这里插入图片描述

4. 摆球

现将大小和形状相同的4个黑色球和4个红色球排成一排,从左边第一个球开始数,不管数几个不球,黑球数不少于红球数的排法有多少种?请编程实现。
卡特兰数的应用

💖 Main.java

public class Main
{static int N = 8;static long ans = 0;static long ans1 = 0;public static void main(String[] args){dfs(0, 0, 0);System.out.println(ans + " " + cal(4));}//	卡特兰数static long cal(int n){long son = 1;long mum = 1;for (int i = 2 * n; i > n; i--)son *= i;for (int i = n; i >= 1; i--)mum *= i;return son / (mum * (n + 1));}//	暴力枚举private static void dfs(int cur, int black, int red){if (cur >= 8){if (red == 4 && black == 4)ans++;return;}if (black > red)dfs(cur + 1, black, red + 1);dfs(cur + 1, black + 1, red);}}

在这里插入图片描述

这篇关于GDPU 竞赛技能实践 天码行空9的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/941616

相关文章

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

Linux中Curl参数详解实践应用

《Linux中Curl参数详解实践应用》在现代网络开发和运维工作中,curl命令是一个不可或缺的工具,它是一个利用URL语法在命令行下工作的文件传输工具,支持多种协议,如HTTP、HTTPS、FTP等... 目录引言一、基础请求参数1. -X 或 --request2. -d 或 --data3. -H 或

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

每日一题|牛客竞赛|四舍五入|字符串+贪心+模拟

每日一题|四舍五入 四舍五入 心有猛虎,细嗅蔷薇。你好朋友,这里是锅巴的C\C++学习笔记,常言道,不积跬步无以至千里,希望有朝一日我们积累的滴水可以击穿顽石。 四舍五入 题目: 牛牛发明了一种新的四舍五入应用于整数,对个位四舍五入,规则如下 12345->12350 12399->12400 输入描述: 输入一个整数n(0<=n<=109 ) 输出描述: 输出一个整数

Prometheus与Grafana在DevOps中的应用与最佳实践

Prometheus 与 Grafana 在 DevOps 中的应用与最佳实践 随着 DevOps 文化和实践的普及,监控和可视化工具已成为 DevOps 工具链中不可或缺的部分。Prometheus 和 Grafana 是其中最受欢迎的开源监控解决方案之一,它们的结合能够为系统和应用程序提供全面的监控、告警和可视化展示。本篇文章将详细探讨 Prometheus 和 Grafana 在 DevO