帅比王的博客

博主很菜但很帅

排序:
默认
按更新时间
按访问量

算法知识点及模板整理

注:本文写作目的是为了本人更加有效的复习以及快速查阅相关知识点,因此本文将会以符合本人审美及阅读习惯的方式来进行排版和整理,请谅解。 以下知识点按照我所学习的时间顺序给出,当然,假设B是A的基础知识,那么将先介绍B。 1.C++相关特性,STL等方便工具: 1.1 C++STL常用容器用...

2018-08-25 14:27:07

阅读数:3907

评论数:0

哈理工第八届程序设计竞赛同步赛(高年级)B题(铺砖问题)解题报告。

题目描述: 小乐乐想要给自己搭建一个积木城堡。 积木城堡我们假设为n*m的平面矩形。 小乐乐现在手里有1*2,2*1两种地砖。 小乐乐想知道自己有多少种组合方案。 输入描述: 第一行输入整数n,m。(1<=n,m<=10) 输出描述: 输...

2018-12-05 13:51:43

阅读数:3700

评论数:0

矩阵快速幂模板C++

思路:和整数快速幂一样,唯一不同的就是存放结果的矩阵初始值为单位矩阵,通过重载运算符*后,代码可以大大简化。另外需要注意的是取模问题,我把模M放在了全局变量,这样省却一些麻烦,可以根据自身需要调整,这个无伤大雅。 代码示例: #include<iostream&...

2018-12-04 21:41:52

阅读数:4337

评论数:0

异或空间与高斯消元

1.异或空间相关概念 1.1 异或空间:依据线性空间的概念,我们可以进一步推广,不限于向量、向量加法和标量乘法。“异或空间”也是一个很常见的形式。异或空间是一个关于异或运算封闭的非负整数集合。可以在异或空间中用类似方法定义“表出” “线性无关” “基底” 等概念。(注:线性空间又称向量空间,是线...

2018-11-29 12:00:07

阅读数:6636

评论数:0

POJ2947解题报告

原题链接:POJ2947 思路:本题是用高斯消元以及同余方程做,但是需要注意整数高斯消元避免使用除法。还需注意同余方程的解的问题、方程式与未知数个数不等问题。 错误报告:这题总时间花了应该有七八个小时了。第一次做忽略了方程式个数不等于未知数个数时情况,并且对于何时无解、何时多解判断方法错误,在...

2018-11-27 18:18:42

阅读数:6635

评论数:0

Manacher算法笔记 C++

Manacher算法简介: 1.作用:Manacher算法又名马拉车算法,用来求一个字符串中最长回文子串的长度。 2.复杂度分析:时间复杂度为O(n)。 算法核心思想: 1.伪代码:假设str为待判断的字符串,len[ i ]数组存放以该 str[ i ] 字符为中心的最长回文子串的长度,...

2018-11-16 19:03:55

阅读数:6666

评论数:0

矩阵乘法模板C/C++

由于矩阵相乘是诸多算法中的基础,就像乘法之于快速幂一样,所以有必要熟练掌握,以下模板是我个人觉得用起来比较方便的,但是随着时间迁移肯定是需要对其进行精进的。 代码示例: struct Matrix{ int n,m; int v[maxn][maxn]; Matrix(int n,in...

2018-11-12 12:34:34

阅读数:7228

评论数:0

Baby Step,Giant Step算法模板

介绍:BSGS(Baby Step,Giant Step)算法是用来求高次同余方程的解的算法。 模板:P148 //baby step giant step #include<iostream> #include<map&am...

2018-11-11 15:48:37

阅读数:6617

评论数:0

拓展欧几里得算法模板

代码示例:求出ax + by = c的所有解 #include<cstdio> int exgcd(int a,int b,int& x,int& y){ if(b == 0){ x = 1,y ...

2018-11-04 21:19:44

阅读数:6604

评论数:0

欧拉函数与线性筛模板

代码实例:求单个欧拉函数。分解单个数,可以用循环来实现,不必借助辅助数组。 //求欧拉函数phi #include<iostream> #include<cstring> using namespace ...

2018-10-30 15:53:47

阅读数:6659

评论数:0

求N所有正约数

题意:给定一个正整数N(N < 2*10e9),求N所有正约数。 解题思路:10e9之内约数个数最多的数的约数个数为1536个。我们可以计算根号N的所有质数,进而求出其约数。 代码实例: //唯一分解定理 //前10000个数中有1229个素数 //10e9自然数内...

2018-10-30 15:25:16

阅读数:6776

评论数:0

A New Alphabet

题目链接:https://nanti.jisuanke.com/t/32763 解题思路:简单的字符替换,注意"\\"才是\ 代码实例: #include<iostream> #include&...

2018-10-24 14:59:01

阅读数:6617

评论数:0

Python中xlrd常用用法整理

1.背景 1.1 安装模板: 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。 在cmd命令行输入:pip install xlrd 1.2 xlrd介绍:xlrd是python环境下对excel中的数据进行...

2018-10-22 13:41:27

阅读数:6730

评论数:0

用python写一个抽奖程序

第一次使用python写程序,确实比C/C++之类方便许多。既然这个抽奖的数据不大,对效率要求并不高,所以采用python写,更加简洁、清晰、方便。 1.用到的模块 生成随机数的模块random 用来读取excel表格的模块xlrd 2.思路:首先打开excel表格,然后读取其中某个单元...

2018-10-22 12:51:29

阅读数:7308

评论数:0

KMP算法--Next数组详解与优化

本篇文章直接跳过蛮力算法以及一些简单背景,着重讨论Next数组的意义以及其是如何工作的,并对如何求Next数组做详细记录。 1.背景 1.1 KMP算法的应用:KMP算法用来解决模式串匹配问题。 1.2 为什么要用KMP算法:普通的蛮力算法时间复杂度为O(n*m),而KMP为O(n+m)...

2018-10-15 17:15:15

阅读数:7879

评论数:2

kd-树笔记

以下内容均为本人近几天学习笔记,个人理解,并非完美答案,请抱着怀疑眼光阅读,如有错误请告知,感谢! 1.kd-树简介 1.1 特征:在任何情况下,kd-树都是一棵递归定义的平衡二叉搜索树 1.2 用途:常用于范围查询,高效解决多维范围查询。例如:快速在校友数据库中找到1970-2000年...

2018-10-05 19:42:48

阅读数:6633

评论数:0

STL 中 nth_element()用法

头文件:#include<algorithm> 用法:nth_element( start , start+k , start+n ); 作用:将第k大的元素放在第k个位置(0,1,2,...,k),并将比它小的放在它左面,比它大的放在它右面,不保证...

2018-10-05 14:11:37

阅读数:6624

评论数:0

c语言double类型printf问题

背景:今天在用c语言写程序时遇到了一个问题:printf("%lf",double(r));竟然输出乱码(0.000000),浏览了几十个网页之后,大致找到了问题原因。 结论:在c语言中,double类型的读入必须用"%lf&quot...

2018-10-03 11:32:10

阅读数:7068

评论数:0

逆元inv详细整理

个人笔记,仅供复习 1.概念 1.1 定义:逆元素是指一个可以取消另一给定元素运算的元素,在数学里,逆元素广义化了加法中的加法逆元和乘法中的倒数。 1.2 数论中定义:如果满足公式,a*b = 1(mod P),则a是b的逆元,同时b也是a的逆元。 1.3 另一种定义:a*x  = 1...

2018-09-23 21:36:21

阅读数:6641

评论数:0

JAVA用“*”打印出圆形实验案例

目标:使用Java语言用字符‘*’打印出圆形。 思路:假设要打印一个半径为r的圆,那么圆上的每个点到圆心距离都是r,而我们又知道了圆心的坐标(r,r),故可以知道当某个点距圆心距离为r时就打印‘*’。于是可以用len来表示圆在该行的弦长,而弦两侧要输出‘*’。 注意事项: 首先如果每行都进行...

2018-09-18 19:37:47

阅读数:6877

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭