在假期利用Python完成了<数值分析>第二章的计算实习题,主要实现了牛顿插值法和三次样条插值,给出了自己的实现与调用Python包的实现--现在能搜到的基本上都是MATLAB版,或者是各种零碎的版本. 代码如下: (第一题使用的自己的程序,第二第三题使用的Python自带库) import math import matplotlib.pyplot as plt import numpy as np import pandas as pd from numpy.linalg import s…
第三题暂缺,之后补充. import matplotlib.pyplot as plt import numpy as np import scipy.optimize as so import sympy as sp x = sp.symbols('x') def calculate(expr_i, expr_j, expr_value,expr_omega): ans=0 for cnt,v in enumerate(expr_value): if isinstance(expr_i,(ty…
目录 「学习笔记」FFT 快速傅里叶变换 啥是 FFT 呀?它可以干什么? 必备芝士 点值表示 复数 傅立叶正变换 傅里叶逆变换 FFT 的代码实现 还会有的 NTT 和三模数 NTT... 「学习笔记」FFT 快速傅里叶变换 几个星期之后,继 扩展欧拉定理 之后, \(lj\) 大佬又给我们来了一发数论... 虽然听得心态爆炸, 但是还好的是没有 \(ymx\) 大佬的飞机开得好... 至少我还没有坐飞机... 啥是 FFT 呀?它可以干什么? 首先,你需要知道 矩阵乘法 的相关知识. 通过…
「学习笔记」Treap 前言 什么是 Treap ? 二叉搜索树 (Binary Search Tree/Binary Sort Tree/BST) 基础定义 查找元素 插入元素 删除元素 查找后继 平衡性问题讨论 经典例题 堆 (Heap) 查询操作 插入操作 删除操作 随机二叉查找树 (Treap) 基础定义 Treap 维护平衡的原理--旋转操作 插入操作 删除操作 其他操作 调试技巧 前言 HuaQiMoAo 大佬 GuoShaoYang 大佬 且部分图片可能来源于这两位大佬. 本人太菜…
「学习笔记」字符串基础:Hash,KMP与Trie 点击查看目录 目录 「学习笔记」字符串基础:Hash,KMP与Trie Hash 算法 代码 KMP 算法 前置知识:\(\text{Border}\) 思路 代码 \(\text{KMP}\) 匹配 思路 代码 Trie 数据结构 01-Trie 代码 练习题 Hash Bovine Genomics 思路 代码 [TJOI2018]碱基序列 思路 代码 [CQOI2014]通配符匹配 [NOI2017] 蚯蚓排队 思路 代码 KMP See…
「学习笔记」Min25筛 前言 周指导今天模拟赛五分钟秒第一题,十分钟说第二题是 \(\text{Min25}​\) 筛板子题,要不是第三题出题人数据范围给错了,周指导十五分钟就 \(\text{AK}​\) 了,为了向 \(\text{AK}​\)王 学习,真诚的膜拜他,接受红太阳的指导,下午就学习了一下 \(\text{Min25}​\) 筛. 简介 如果 \(f(n)\) 是一个积性函数,且 \(f(n)\) 是一个关于 \(n\) 的简单多项式,并可以快速算出 \(f(p^k),\ p\…
目录 「学习笔记」FFT 之优化--NTT 前言 引入 快速数论变换--NTT 一些引申问题及解决方法 三模数 NTT 拆系数 FFT (MTT) 「学习笔记」FFT 之优化--NTT 前言 \(NTT\) 在某种意义上说,应该属于 \(FFT\) 的一种优化. --因而必备知识肯定要有 \(FFT\) 啦... 如果不知道 \(FFT\) 的大佬可以走这里 引入 在 \(FFT\) 中,为了能计算单位原根 \(\omega\) ,我们使用了 \(\text{C++}\) 的 math 库中的…
计算监控属性构造参考 计算监控属性可使用以下形式进行构造: ko.computed( evaluator [, targetObject, options] ) - 这种形式是创建一个计算监控属性最常见的情况. evaluator - 用于返回计算值的函数. targetObject-如果给出定义的值this时KO调用回调函数.参见部分第三章 计算监控属性(1) 使用计算监控属性以获取更多信息. options - 计算监控属性的其他属性的对象.请参见下面的完整列表. ko.computed(…
第一章: 重要知识点: 类型:一种类型不仅定义了数据元素的内容,还定义了这类数据上可以进行的运算:所以说类定义,实际上就是定义了一种数据类型: >>和<<运算符返回其左侧的运算对象: std::cin >> v1 >> v2; 和以下代码执行结果一样: std:cin >> v1; std:cin >> v2; 良好的行注释风格: 注释内的每一行都以一个星号开头,从而指出整个范围都是多行注释的一部分: #include<iost…
[学习笔记]wqs二分/DP凸优化 从一个经典问题谈起: 有一个长度为 \(n\) 的序列 \(a\),要求找出恰好 \(k\) 个不相交的连续子序列,使得这 \(k\) 个序列的和最大 \(1 \leq k \leq n \leq 10^5, -10^9 \leq a_i \leq 10^9\) 先假装都会 \(1 \leq k \leq n \leq 1000\) 的 \(dp\) 做法以及 \(k = 1\) 的子问题 实际上这个问题还可以是个费用流模型: 对于序列中每一个点 \(i\)…
引入 假设我们想计算 \(f(x) = x!\).除了简单的 for 循环,我们也可以使用递归. 递归是什么意思呢?我们可以把 \(f(x)\) 用 \(f(x - 1)\) 表示,即 \(f(x) = x \times f(x - 1)\).这样,我们就可以不断地递归下去. 但是,这是永远不会停止的.我们需要设立一个边界条件,\(f(0) = 1\).这样,我们就可以写出代码了. int f(int x) {return x ? x * f(x - 1) : 1;} 实际上,递归有两大要点:…
问题引入 先让我们看一个简单的问题,有N个元素,Q次操作,每次操作需要求出一段区间内的最大/小值. 这就是著名的RMQ问题. RMQ问题的解法有很多,如线段树.单调队列(某些情况下).ST表等.这里主要探讨ST表 过程 ST表是一种神奇的算法,它以倍增与二进制为基础,实现区间内最大/小值.话不多说,直接切入正题-- 我们这里以求区间最大值为例. 首先,我们可以用O(\(N lg N\))的时间复杂度预处理出以i开始,接下来2j个元素中的最大值.我们借助递推/DP的思想. for ( int i…
写在前面 注意:此文章仅供参考,如发现有误请及时告知. 更新日期:2018/3/16,2018/12/03 动态规划介绍 动态规划,简称DP(Dynamic Programming) 简介1 简介2 动态规划十分奇妙,它可以变身为记忆化搜索,变身为递推,甚至有时可以简化成一个小小的算式. 动态规划十分灵活,例如 NOIP2018 PJ T3 摆渡车 ,写法有很多很多,但时间.内存却各有差异. 动态规划十分简单,有时候一个小小的转移方程就能解决问题. 动态规划十分深奥,有时你会死也想不出合适的转移…
目录 ST表 算法 预处理 查询 关于 log2 Code 预处理 查询 例题 P2880 P2048 lca 树上 RMQ 前置知识:欧拉序列 算法 Code 离线 Tarjan 算法 Code 倍增 算法 Code 对比 例题 P3379 P2912 P2245 ST表 就是一个用倍增法求静态RMQ(区间最值)的算法. 预处理 \(O(nlogn)\),查询 \(O(1)\),远吊打其他算法. 算法 预处理 依次预处理出左端点为 \(l\),右端点为 \(l+2^j(1\le j\le lo…
说明:[Maven实战]一书还介绍了怎么样手工创建Maven工程,学习这本书是为了能尽快在工作中使用,就忽略了手工建工程的部分 如果想了解这部分的内容,可以自己看看书 开始: 1.新建一个maven工程,点击next 2.第二步,使用默认值,点击next 3.选择 maven-archetype-quickstart, 点击next 4.第4步,如图,点击finish 到这里maven工程就建完了 建 好的工程如图:(这个图和上面的面有些不一样,下面的图是以前建 的工程,这里偷懒了) 说明一下工…
前言 快速傅里叶变换(\(\text{Fast Fourier Transform,FFT}\) )是一种能在\(O(n \log n)\)的时间内完成多项式乘法的算法,在\(OI\)中的应用很多,是多项式相关内容的基础.下面从头开始介绍\(\text{FFT}\). 前置技能:弧度制.三角函数.平面向量. 多项式 形如\(f(x)=a_0+a_1x+a_2x^2+...+a_nx^n\)的式子称为\(x\)的\(n\)次多项式.其中\(a_0,a_1,...,a_n\)称为多项式的系数. 系数…
FHQ Treap FHQ Treap (%%%发明者范浩强年年NOI金牌)是一种神奇的数据结构,也叫非旋Treap,它不像Treap zig zag搞不清楚(所以叫非旋嘛),也不像Splay完全看不懂,而且它能完成Treap与Splay能完成的所有事,代码短,理解也容易. 基本操作 FHQ Treap和Treap很像,都是给每个节点一个随机的权值,使它满足堆的性质.建议先了解Treap(没必要实现,懂得原理即可).不过,如果有两个节点值相同,FHQ Treap不会用一个数组cnt记录个数,而是…
目录 算法 例题 任务安排 题意 思路 代码 [SDOI2012]任务安排 题意 思路 代码 任务安排 再改 题意 思路 练习题 [HNOI2008]玩具装箱 思路 代码 [APIO2010]特别行动队 思路 代码 [ZJOI2007]仓库建设 思路 代码 [USACO08MAR]Land Acquisition G 思路 代码 算法 把一些 dp 的转移方程拆一拆,移一移,能拆成 \(y=kx+b\) 的形式(其中 \(k,b\) 只与当前的 \(i\) 有关,\(x,y\) 只与 \(j\)…
                                3.4 数据类型 基本数据类型:Undefined.Null.Boolean.Number.String 复杂数据类型:Object 3.4.4 Boolean 类型 boolean 数据转换类型表 数据类型 转换为true的值 转换为false的值                              …
这里说一下在建测试工程里遇到的问题 1.第一次建工程,junit依赖始终没有成功,最后删除现在工程,新建了一个工程就好了 2.使用junit4的问题.工程默认的依赖是junit3.8.1,我改成了4.8.2,使用junit4来测试代码,因为没用过junit4 就发生测试代码的@Test报错,引用报错等问题,到网上查了半天都一一解决,其中@Test用法的问题是在 http://maven.40175.n5.nabble.com/Maven-test-with-Junit4-td97402.html…
使用maven执行编译和测试 1.maven执行编译 (1).在pom.xml上点右键,选择Maven build... (2).在Goals里输入clean complie,执行编译 执行结果: [INFO] Scanning for projects...[INFO]                                                                         [INFO] ----------------------------------…
前置姿势 魔力筛 其实不看也没关系 用途和限制 在\(\mathrm{O}(\frac{n^{0.75}}{\log n})\)的时间内求出一个积性函数的前缀和. 所求的函数\(\mathbf f(x)\)要满足以下条件: \(\mathbf f(p)\)是一个多项式,其中\(p\)是质数 \(\mathbf f(p^c)\)要能够快速计算. 算法流程 首先我们需要求出对于每一个\(\left\lfloor \frac ni\right\rfloor\)求出\(\sum_{i=1}^x [i \…
1.进程和程序 程序是一个可执行文件,而一个进程是一个执行中的程序实例.一个进程对应于一个程序的执行,进程是动态的,程序是静态的,多个进程可以并发执行同一个程序.比如几个用户可以同时运行一个编辑程序,每个用户对此程序的执行均作为一个单独的进程. 2.进程控制的系统调用一个进程可以启动另一个进程,进程之间形成层次结构,而进程树的顶端是一个控制进程,一个名为Init的程序的执行,该进程是所有用户进程的祖先.主要的系统调用有 fork()   通过复制调用进程来建立新的 进程,是最基本的进程建立操作…
推荐资源: <线性代数的本质>:Essence of linear algebra 视频教程 <数学之美>(科普类书籍),吴军系列书籍都不错. 易向军<大嘴巴漫谈数据挖掘>,通俗生动,不枯燥.…
前言 快速傅里叶变换(\(\text{Fast Fourier Transform,FFT}\) )是一种能在\(O(n \log n)\)的时间内完成多项式乘法的算法,在\(OI\)中的应用很多,是多项式相关内容的基础.下面从头开始介绍\(\text{FFT}\). 前置技能:弧度制.三角函数.平面向量. 多项式 形如\(f(x)=a_0+a_1x+a_2x^2+...+a_nx^n\)的式子称为\(x\)的\(n\)次多项式.其中\(a_0,a_1,...,a_n\)称为多项式的系数. 系数…
珂朵莉树,也叫ODT(Old Driver Tree 老司机树) 从前有一天,珂朵莉出现了... 然后有一天,珂朵莉树出现了... 看看图片的地址 Codeforces可还行) 没错,珂朵莉树来自Codeforces 896C C. Willem, Chtholly and Seniorious 国外珂学家 滑稽) 前置芝士: set的基本操作 迭代器(跟指针差不多 重载运算符.构造函数的简单了解 mutable(下面也会讲 暴力枚举 常数优化(inline O2 O3 register大法好啊…
目录 算法 例题 最大子段和 题意 思路 代码 修剪草坪 题意 思路 代码 瑰丽华尔兹 题意 思路 代码 股票交易 题意 思路 代码 算法 使用单调队列优化dp 废话 对与一些dp的转移方程,我们可以通过拆使它与某个区间的最值相关. 这时可以用单调队列算出区间最值,进行优化. 例题 最大子段和 题意 给出一个长度为 \(n\) 的整数序列,从中找出一段长度不超过 \(m\) 的连续子序列,使得整个序列的和最大. 思路 设 \(sum_i\) 为 \(i\) 的前缀和,易得答案为: \[\max_…
KO是如何实现自动更新的 初学者可以掠过该篇,如果你是一个刨根问底的开发者,那本节将告诉你KO是如何实现依赖追踪和UI自动更新的. 其实很简单,KO的依赖追踪算法如下: 当你声明一个计算监控属性,KO立即调用其相关的函数来获取其初始值. 当相关函数正在运行,KO将建立一个订阅到相关监控属性(包括其他计算监控属性)并读取他们的值.订阅回调函数设置为订阅函数再次运行,循环的这个过程. 当有新的值,KO会通知你的计算监控属性将值反馈给用户. 采用PEEK控制依赖 Knockout的自动依赖跟踪通常不是…
第三章 编写第一个C语言程序 导读:一般学一门计算机语言的第一堂上机课(“上机”顾名思义,上了计算机),就是往屏幕输出“hello world”,本章也不例外. 1.1 Hello,World! 这一节和读者一起来编写第一段C语言程序,过程详细到令人发指. 1.1.1 创建C语言源码文件 打开 Dev C++,在上方菜单栏中选择“文件 --> 新建 --> 源代码”,如图3.1, 图3.1  创建源代码文件 1.1.2 输入一段代码 用键盘输入以下代码,先输入,等会再分析: #include…
1.计算属性介绍 在第二章中我们介绍了在Vue的{{}}中可以使用一些简单的表达式进行计算,但是当表达式过长或者逻辑过于复杂就会变得不易理解和维护,比如第二章的示例{{ text.split(',').reverse().join(',') }},为了使{{}}的内容看起来更简洁,就需要用到Vue中计算属性,如下示例 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <titl…