![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模板
zhaoweiming2019
东莞垃圾OIer
展开
-
判断勾股数
勾股数定义:又名毕氏三元数 。勾股数就是可以构成一个直角三角形三边的一组正整数。勾股定理:直角三角形两条直角边a、b的平方和等于斜边c的平方(a²+b²=c²) c++实现 bool is_Pythagorean_triple(int a,int b,int c)//传入三条边 { int pow_a=a*a,pow_b=b*b,pow_c=c*c;//求他们的平方 if(pow_a+pow_b==pow_c) return true; if(pow_a+pow_c==pow_b)原创 2020-08-21 20:10:44 · 1641 阅读 · 0 评论 -
摄氏度&华氏度互化
摄氏度&华氏度互化 知识:1 摄氏度=33.8 华氏度 华氏度转摄氏度 double f_to_c(int f) { double c=(5*(f-32))/9; return c; } 摄氏度转华氏度 double c_to_f(int c) { double f=(5/9)*c + 32; return f; }原创 2020-08-21 19:25:21 · 166 阅读 · 0 评论 -
归并排序【模板】
归并排序 时间复杂度:O(log2n) 流程 1.分界点为中点:mid=(left + right)/2 2.分别递归排序两边 3.归并——合二为一 O(n) 这里我们就得到了两个排好序(从小到大),然后: 再开出一个数组res,用i,j两个指针分别指向第一个第二个的开头 比较i1与j1,不妨设i1小于j1,这时将i1放进res的第一个位置 将i指针右移一位,指向i2 比较i2与j1,不妨设j1小于i2,这时就将j1>放人res的第二位 如此类推… 如果当某一段的数放完了,另一段还有原创 2020-08-08 23:07:45 · 108 阅读 · 0 评论 -
一维前缀和与二维前缀和
前缀和 什么是前缀和? 前缀和是一个数组的某项下标之前(包括此项元素)的所有数组元素的和。 作用:快速求出某一段区间的总和 such as:求出a[3]+a[4]+…+a[15]=sum[15]-sum[2] //sum为前缀和 优势:可以在O(1)的复杂度求出某一部分的总和 设b[]为前缀和数组,a[]为原数组,根据这句话可以得到前缀和的定义式和递推式: 【一维前缀和】 根据上面的定义,我们可以很容易得到 sum[i] = sum[i-1] + a[i] 这样就可以得到前i个数的和原创 2020-08-08 23:01:19 · 83 阅读 · 0 评论 -
快速排序[模板]
快速排序 确定分界点x: 方法: q[l] //左端点 q[r] //右端点 q[(l+r)/2] //中点 q[随便] //任意 2.调整区间: 把<=x的和>=x的分开(x随意,放两边都可以) 暴力实现: int a[],int b[]; //a装<=x,b装>=x memset(a,0x3f3f3f3f,sizeof(a)); memset(b,0x3f3f3f3f,sizeof(b)); for(int i=l;i<=r;原创 2020-08-08 22:53:36 · 100 阅读 · 0 评论 -
快速幂详解【模板】
快速幂 洛谷链接 AcWing链接 快速幂的思想 当我们求37时 朴素算法就是Pow,或者连乘7次,这个要进行7次运算 但我们可以用快速幂的思想 31=3 32=9 33=81 然后再将三次的值相加,就可以求出37 这个思想还可以用于这道题 64位整数乘法 这个思想非常高效,可以将原来O(n)的算法改成O(log2n) 快速幂的模板 int qmi(int m, int k, int p) { int res = 1 % p, t = m; while (k) {原创 2020-08-04 20:21:22 · 119 阅读 · 0 评论 -
判断回文数[模板]
要求: 判断一个数是否为回文数 bool isPalindrome(int x) { if(x<0) return 0; int tmp=x;//x最后会变 long long res=0; while(x)//把每一位扣出来 { res=res*10 + x%10; x/=10; } return res==tmp; }原创 2020-07-22 23:10:39 · 76 阅读 · 0 评论