最新文章

高中主流函数及对应的Python实现 (1)

一、基本函数 函数类别 数学表示 Python函数名(math库) Python函数名(numpy库) 示例 幂函数 $x^a$ math.pow(x, a) 或 x**a np.power(x, a) math.pow(2, 3) → 8.0 指数函数(自然底数) $e^x$ math.exp(x) np.exp(x) math.exp(2) ≈ 7.389 指数函数(一般底数) $a^x$ 无直接函数,使用 a**x np.power(a, x) 或 np.exp2(x)(仅限$2^x$) 2**3 → 8 自然对数 $\ln x$ math.log(x) np....

零钱兑换问题分析

零钱兑换问题(Coin Change)是一个经典的动态规划问题,目标是找出组成给定金额所需的最少硬币数量。 问题描述 给定不同面额的硬币 coins 和一个总金额 amount,计算可以凑成总金额所需的最少硬币个数。如果没有任何一种硬币组合能组成总金额,返回 -1。 假设: - 硬币数量无限 - 硬币面额都是正整数 - 总金额 amount 是非负整数 方法一:暴力递归(回溯法) 思路分析 通过递归尝试所有可能的硬币组合,找出使用硬币数量最少的方案。 时间复杂度 O(Sⁿ),其中 S 是金额,n 是硬币种类数 代码实现 #include <iostream> #include &l...

Noi大纲解读

解码顶尖竞赛:从NOI最新大纲中,我们读出了关于AI时代人才培养的5个惊人信号 导言 你是否也曾好奇,那些在金字塔尖的青少年编程竞赛,究竟在考察孩子们什么样的能力?它们仅仅是代码技巧的比拼,还是一场更深层次的思维对决?最近,中国计算机学会(CCF)发布了极具分量的《全国青少年信息学奥林克系列竞赛大纲(2025年修订版)》。这份看似专业的技术文件,远不止是一份竞赛指南。它更像一扇窗口,让我们得以清晰地窥见,在GPT为代表的人工智能浪潮席卷而来的今天,我们顶尖的科技人才培养蓝图正在发生何种深刻的变革。在深入研读这份纲领性文件后,我从中提炼出五大信号——有些是细微的调整,有些则是颠覆性的转向,它们共...

Cpp 异或运算符详解

异或运算符 ^ 是 C++ 中的位运算符,表示按位异或(XOR)操作。 基本概念 运算符:^ 运算规则:相同为0,不同为1 0 ^ 0 = 0、 0 ^ 1 = 1、 1 ^ 0 = 1、 1 ^ 1 = 0 操作对象:整数类型(int, char, long等)的二进制位 重要特性 交换律:a ^ b = b ^ a 结合律:(a ^ b) ^ c = a ^ (b ^ c) 自反性:a ^ a = 0 与0异或:a ^ 0 = a 可逆性:如果 c = a ^ b,则 a = c ^ b 5个应用场景及代码示例 1. 交换两个变量的值(不使用临时变量) #incl...

第2章排序与顺序统计量

第2章:排序与顺序统计量 2.1 排序问题 排序的定义: 排序是将一组数据按特定顺序排列,通常是从小到大或从大到小。 排序在许多应用中是基础操作,如数据库查询、数据分析、图形学等。 排序算法的设计目标: 时间复杂度:对大规模数据的排序效率。 空间复杂度:算法所需的额外内存。 稳定性:如果两个元素相等,它们在排序后的相对顺序是否保持不变。 2.2 比较排序算法 比较排序的基本思想: 排序过程中通过比较元素之间的大小关系来决定元素的相对位置。 经典的比较排序算法有:插入排序、归并排序、快速排序、堆排序等。 时间复杂度的下界: 在最坏情况下,比较排序的时间复杂度下界为O(n log n),...

第3章数据结构

第3章:数据结构 3.1 基本数据结构 在这一小节中,我们讨论了几种最常见的基本数据结构,并介绍了它们的特点、操作方法和应用场景。 3.1.1 线性表 (Linear List) 定义:线性表是由一系列相同类型的元素按顺序排列而成的数据结构。最常见的线性表有数组和链表。 特点:元素之间存在一一对应的关系,可以通过下标访问每个元素。 线性表的两种常见实现: 数组 (Array):固定大小的连续内存块,支持随机访问,但插入和删除操作效率较低。 链表 (Linked List):由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表适合插入和删除操作,但访问效率较低。 3.1.2 栈 (...

第1章引言

第1章:引言 1.1 算法与问题的定义 算法的定义: 算法是解决问题的一组明确的指令或步骤,用于将输入转换为输出。 一个好的算法应该具备清晰的正确性、效率和可理解性。 算法的三个主要方面: 输入:算法接受的初始数据。 输出:算法计算后的结果。 过程:算法执行的步骤。 1.2 算法的特性 正确性: 一个算法必须在所有输入情况下产生正确的输出。 效率: 主要指算法的时间复杂度和空间复杂度。 时间复杂度:执行步骤的数量。 空间复杂度:算法需要的额外内存。 可理解性: 算法应该易于理解和实现。 1.3 算法分析的基本方法 时间复杂度分析: 时间复杂度用来衡量算法执行所需的时间量,...

数论基础

数论是信息学竞赛中非常重要的领域,涉及很多基础算法和技巧,尤其是在处理大数、同余运算、质数分解等问题时。在竞赛中,数论的知识不仅对解题提供了强有力的支持,而且很多算法背后都有深刻的数学原理。 1. 素数与质因数分解 1.1 素数的基本概念 素数(Prime Number):大于1的整数,且除了1和其本身外没有其他约数的数。例如,2、3、5、7、11、13等。 合数(Composite Number):大于1且可以分解为多个素数相乘的整数。例如,4、6、8、9、10等。 质因数分解:将一个整数分解为若干个素数的乘积。每个数都有唯一的质因数分解。 1.2 素数判定 朴素算法:检查一个数是否能被从2...

20251120 141414 小学生C编程课堂笔记

1. 程序基本概念 🌈学习目标 理解程序的基本组成部分 学会命名常量和变量 了解头文件和名字空间的作用 掌握编写程序的基本步骤 1.1 基本概念解释 标识符:就像我们的名字,用来给变量、常量起名 int myAge = 10; // myAge就是标识符 string myName = "小明"; // myName也是标识符 关键字:C++语言预留的特殊单词,就像"爸爸"、"妈妈"这样的称呼 int if = 5; // 错误!if是关键字,不能当变量名 常量:不会改变的值,就像我们的生日 const double PI = 3.14; // P...

Csp J 2025 题目分析

【25CSPJ普及组】拼数 这是一个字符串处理问题,需要从给定的字符串中提取所有数字字符,然后组成最大的正整数。 思路: 从字符串中提取所有的数字字符 对数字字符进行排序(降序),这样最大的数字会在前面 注意:不能有前导零,所以如果第一个字符是'0',需要特殊处理 #include <iostream> #include <string> #include <algorithm> #include <vector> using namespace std; int main() { string s; cin &...