实用函数或算法
Rati0nal
这个作者很懒,什么都没留下…
展开
-
使用绝对路径时的雷区——特殊Unicode字符\u202a
今天在跑python代码时,眼看数据已经跑好存入ndarray数组内,只差输出了。但在使用pd.to_excel方法时出现了如下报错:OSError: [Errno 22] Invalid argument: '\u202aC:(+文件路径)这很明显是我使用绝对路径时存在一定的问题。仔细看报错信息,发现有一个特殊的东西:\u202a经查这是一个特殊的Unicode字符,意义是:“从左至右嵌入”。在代码中将其删除后就能顺利运行了。产生这个错误的原因在写代码以及日常使用时,为了贪图方便我经常使用文原创 2020-05-27 09:20:37 · 1402 阅读 · 0 评论 -
高效地求动态区间和——树状数组
树状数组是一种当查询区间和、修改数组值很多的情况下(每次只能修改一个元素的值)可以考虑使用的一种工具。即——快速地求动态的区间和(动态:既在修改又在查询)同为这种查询工具的线段树和树状数组有什么区别两者在复杂度上同级, 但是树状数组的常数明显优于线段树, 其编程复杂度也远小于线段树. 树状数组的作用被线段树完全涵盖,(线段树的每个节点可以包含一些其他信息)凡是可以使用树状数组解决的问题, ...原创 2020-03-26 00:18:35 · 188 阅读 · 0 评论 -
浮点数的大小比较问题
浮点数的相等比较不能用==、!=而要用fabs(a-b) < 1e-9(即某个阈值)来判断出错过程:今天在做2014年蓝桥杯C++省赛B组的时候遇到了这么一题:奇怪的分式上小学的时候,小明经常自己发明新算法。一次,老师出的题目是:1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png)老师刚想批评他,转念一想,这个答案凑巧也...原创 2020-02-25 16:23:18 · 775 阅读 · 0 评论 -
数学知识——约数(因数)
约数,又称因数。整数a除以整数b(b≠0) 除得的商正好是整数而没有余数,我们就说a能被b整除,或b能整除a。a称为b的倍数,b称为a的约数。约数的判定:试除法众所周知,除了可能有一对同样的数相乘等于x以外,其余的一对约数一个小于sqrt(x)、一个大于sqrt(x)vector<int> get_divisors(int x){ vector<int>...原创 2020-02-13 14:02:51 · 1539 阅读 · 0 评论 -
组合+排列算法汇总
C(m,n) 组合问题dfs解决:注意:第一次从main函数传来的参数是(0,1)组合的第二个参数是start,dfs是循环开始的标记,这与排列不同如果是已知m n的情况直接改函数中的m n的值int way[30];//全局数组,记录每种方案int n,m;//全局变量n,m,进行操作后求出的是C(m,n)void zuhe_C(int cnt,int start) //首...原创 2020-02-12 15:59:45 · 214 阅读 · 0 评论 -
数学知识——质数
质数是各种竞赛和考试中十分高频的考点,以下是我总结的一系列质数相关的算法质数的判定:试除法bool is_prime(int x)//时间复杂度O(sqrt(n)){ if (x < 2) return false; for (int i = 2; i <= x / i; i ++ ) if (x % i == 0) return false; ...原创 2020-02-08 23:11:49 · 224 阅读 · 0 评论 -
最短路问题:SPFA算法
看到最短路问题排除稠密图和多源汇之后直接用SPFA试时间复杂度方面:SPFA时间复杂度一般为O(m),最坏O(nm)。而堆优化版dijkstra算法为O(mlogn)。所以优先用SPFA,但如果遇到出题人设计数据卡SPFA的话再用Dijkstra。适用性方面:SPFA适用于单源最短路问题(是否存在负权边均可,且可用来判断负环)例题1:AW851:SPFA算法求最短路SPFA...原创 2020-02-06 23:47:41 · 306 阅读 · 0 评论 -
STL中二分查找函数——binary_search//lower_bound//upper_bound//equal_range
以下函数均需配合头文件< algorithm>和sort函数排序后使用lower_boundint lower_bound(start,end,num);返回值是int类型,返回的是一个指针,意义是在[start,end)范围内第一次遇到大于或等于num的下标。upper_boundint upper_bound(start,end,num);返回值是int类型,返...原创 2020-02-05 19:29:02 · 270 阅读 · 0 评论 -
lowbit函数
lowbit函数——返回二进制数的最后一位1,在返回时附带其后面的0举例:x=1010 —> lowbit(x)=10 ==2x=101000 —> lowbit(x)=1000 ==8x=11111111000000 —> lowbit(x)=1000000 ==64即返回的数都是一个2的多少次方实现:由于数在计算机里以补码的方式储存,运用...原创 2020-02-02 22:33:33 · 1654 阅读 · 2 评论 -
next_permutation(全排列算法)的一些文档收集
今天在2016年蓝桥杯C++省赛B组第三题凑算式题目的视频讲解中看到了一个生成全排列的函数 bool next_permutation() 。马上上网查了一下用法,并整理写成下面博客。首先看看它的用法:#include <iostream> #include <algorithm> using namespace std; int main() { ...原创 2020-02-04 22:23:00 · 199 阅读 · 0 评论