模板
文章平均质量分 52
兜率工
XJTU 硕士研究生在读
展开
-
最大因子(素数)模板
int mpf[N+1]; //mpf[i] = x,则x为i的最大因子(素数)void maketable() //求出每个数的最大因子{ int i,j; memset(mpf,0,sizeof(mpf)); mpf[0]=0; mpf[1]=1; for(i=2;i<=N;i+=2) mpf原创 2018-02-03 10:59:15 · 739 阅读 · 0 评论 -
快速排序
//快速排序。#include <iostream>#include <stdio.h>using namespace std;int n,a[101];void quicklysort(int left,int right){ int i,j,t,temp; if(left>right) return; //递归结束条件。...原创 2018-02-11 10:01:47 · 197 阅读 · 0 评论 -
链表
#include <stdio.h>#include<stdlib.h>//创建一个结构体用作链表的结构类型。struct node{ int date; struct node *next;};int main(){ struct node *head,*p,*q,*t,*f; int n,a; scanf("%d"...原创 2018-02-12 12:53:55 · 154 阅读 · 0 评论 -
Bellman-Ford的优先队列
参考啊哈算法第六章第四节#include &lt;algorithm&gt;#include &lt;iostream&gt;#include &lt;cstring&gt;#include &lt;cstdio&gt;#include &lt;math.h&gt;using namespace std;const int in原创 2018-02-27 21:01:35 · 301 阅读 · 0 评论 -
欧拉函数(初识)
欧拉函数,用φ(n)表示欧拉函数是求小于等于n的数中与n互质的数的数目比如φ(12)把12质因数分解,12=2*2*3,其实就是得到了2和3两个质因数然后把2的倍数和3的倍数都删掉2的倍数:2,4,6,8,10,123的倍数:3,6,9,12本来想直接用12 - 12/2 - 12/3但是6和12重复减了所以还要把即是2的倍数又是3的倍数的数加回来 (>﹏<)所以这样写12 - 12/2 - 12...原创 2018-02-14 18:38:09 · 1761 阅读 · 0 评论 -
快速幂&快速乘(模板)
// 快速模幂计算函数 int powermod(long long a, int n, int m) { long long res = 1; while(n) { if(n &amp;amp; 1) { // n % 2 == 1 res *= a; res %= m; ...原创 2018-02-28 09:15:54 · 240 阅读 · 0 评论 -
素数打表模板
// 第一种方法#include <stdio.h>int n=10000;int prime[3000];int total=0;int isprime(int k){ for(int i=0;i<total;i++) if(k%prime[i]==0) return 0; return 1;}int main(){ for(int i=2;...原创 2018-02-17 23:33:03 · 157 阅读 · 0 评论 -
尺取法
while(1) //尺取法 { while(primes[en]<=n&&sum<n) sum+=primes[en++]; if(sum==n) cnt++; sum-=primes[start...原创 2018-02-18 00:23:14 · 117 阅读 · 0 评论 -
浮点数跟0比较
找到了一篇讲的特别好的博客:https://www.cnblogs.com/kubixuesheng/p/4107309.html题目中针对的0,对于浮点类型,具体指的是0.0,自然对于指针类型就是NULL,对于整型就是0,一些常见笔试面试题中常出现,不要较真,十分欢迎提出改进意见。本文很大程度上收到林锐博士一些文章的启发,lz也是在大学期间读过,感觉收益良多,但是当时林锐也是说了结论,lz也只是...转载 2018-02-19 23:23:24 · 23240 阅读 · 2 评论 -
二进制转十六进制,八进制(模板)
#include <algorithm>#include <iostream>#include <cstring>#include <cstdio>#include <math.h>#include <string.h>using namespace std;typedef unsigned long long...原创 2018-02-28 19:54:17 · 274 阅读 · 0 评论 -
二进制转化为其他进制(模板)
二进制字符串长度64位以内模板:#include <algorithm>#include <iostream>#include <cstring>#include <cstdio>#include <math.h>#include <string.h>using namespace std;typedef ...原创 2018-02-28 20:15:35 · 435 阅读 · 0 评论 -
任意进制转化为十进制(模板)
//任意进制数字转化为十进制int convert(int val,int base){ int ans=0,wight=1,r; while(val) { r=val%10; val/=10; if(r>=base)//在该进制中不可能存在这个数。 return -1; an...原创 2018-02-28 20:53:28 · 2065 阅读 · 0 评论 -
八皇后问题(模板)
void dfs(int cur,int sum){ if(cur==8) { if(maxi<sum) maxi=sum; return ; } for(int i=0;i<8;i++) if(!book[0][i]&&!book[1][cur+i+1]&...原创 2018-03-08 20:14:29 · 270 阅读 · 0 评论 -
大整数加法(模板)
注意: 在main函数计算过程中必须注意前导0;string字符串进行计算:(还有待优化)string add(string s1,string s2){ string max,min; if(s1.length()>s2.length()) { max=s1;min=s2; } else { ...原创 2018-03-01 09:21:29 · 567 阅读 · 0 评论 -
string字符串的截取
标准库的string有一个substr函数用来截取子字符串。一般使用时传入两个参数,第一个是开始的坐标(第一个字符是0),第二个是截取的长度。#include <iostream>#include <string>using namespace std;int main(int argc, char* argv[]){ string name("...原创 2018-03-01 09:39:01 · 1169 阅读 · 0 评论 -
C++ STL 全排列函数详解
利用全排列函数实现全排列一、概念 从n个不同元素中任取m(m≤n)个元素,按照一定的顺序排列起来,叫做从n个不同元素中取出m个元素的一个排列。当m=n时所有的排列情况叫全排列。如果这组数有n个,那么全排列数为n!个。 比如a,b,c的全排列一共有3!= 6 种 分别是{a, b, c}、{a, c, b}、{b, a, c}、{b, c, a}、{c, a, b}、{c, b, a}。二、常用...原创 2018-02-21 20:38:31 · 1876 阅读 · 0 评论 -
排列组合c(n,m) (模板)
long long C(int n, int m) { long long s; if(n < m) s=0; else if (n == m || m == 0) s=1; else for(i=1; i<=m; i++) s = s * (n - i +...原创 2018-03-01 16:21:15 · 1009 阅读 · 2 评论 -
有n个数,删除其中最小数,并增加一个新数,循环进行n次(最小堆实现)
用完全二叉树进行计算,时间复杂度为log2(n); 参考啊哈算法第七章第三节void sifedown(int i){ int t,flag=0; while(2*i&lt;=n&amp;&amp;flag==0) { if(h[i]&gt;h[2*i]) t=2*i; else t...原创 2018-03-02 10:14:46 · 199 阅读 · 0 评论 -
建立最小堆
for(int i=1;i&lt;=m;i++){ scanf("%d",&amp;h[i]); siftup(i);}插入第i个所用时间o(log i),插入整体所用的时间复杂度o(N*logN);for(int i=n/2;i&gt;=1;i--) siftdown(i);时间复杂度o(N);...原创 2018-03-02 10:44:52 · 654 阅读 · 0 评论 -
堆排序
参考啊哈算法第七章第三节与快速排序一样,堆排序时间复杂度也是O(N*logN)由小到大排序:(最小堆)#include &lt;stdio.h&gt;int h[101];int n;void swap(int x,int y){ int t; t=h[x]; h[x]=h[y]; h[y]=t; return;}void sif...原创 2018-03-02 11:42:26 · 132 阅读 · 0 评论 -
十进制转二进制(模板)
while(cin>>n){ memset(a,0,sizeof(a)); int i=0; while(n) { a[i++]=(n&1)+'0'; n>>=1; } if(i==0) { a[0]='0'; i++; }}原创 2018-03-09 23:34:33 · 505 阅读 · 0 评论 -
Kruskal算法(图的最小生成树)(模板)
核心 //Kruskal算法核心 for(int i=1;i<m;i++) { if(merge(e[i].u,e[i].v)) { cnt++; sum+=e[i].w; } if(cnt==n-1) break; }...原创 2018-03-02 17:41:19 · 633 阅读 · 0 评论 -
扩展欧几里得算法 (模板)
// 扩展欧几里得算法(递归) int exgcd(int a, int b, int &x, int &y) { if (a % b == 0) { x = 0; y = 1; return b; }else { int r, tx, ty; r =...原创 2018-03-03 09:39:33 · 300 阅读 · 0 评论 -
欧拉函数(模板)
/* 欧拉函数 */ int phi(int n) { int ret=1, i; for(i=2; i*i<=n; i++) { if(n % i == 0) { n /= i; ret *= i - 1; while(n % i == 0) { ...原创 2018-03-03 09:41:03 · 187 阅读 · 0 评论 -
KMP算法(模板)
int next[maxn];void getnext(string pattern, int len){ int k=-1; next[0]=-1; for(int i=1;i&lt;len;i++) { //找寻模式串里面跟他相同的前坠串,如果找不到,k就一直向前跑,直到找到为止或者说k==-1; //k就相当于一个指针,找...原创 2018-03-16 23:53:37 · 164 阅读 · 0 评论 -
大整数减法(模板)
#include <iostream>#include <cstring>using namespace std;string a,b;string substr(string a,string b ){ int i,j,k,flag=1; string s1,s2; if(a.size()<b.size()||(a.size()...原创 2018-03-11 10:44:40 · 251 阅读 · 0 评论 -
高精度运算(大数加减乘除)阶乘
大整数加法string add(string s1,string s2){ string max,min; if(s1.length()&gt;s2.length()) { max=s1;min=s2; } else { max=s2;min=s1; } int l1=max.length()...原创 2018-03-11 15:40:57 · 1129 阅读 · 0 评论 -
STL中容器的删除操作。
第九条 1.删除c容器中所有值为1963的元素。//删除c容器中所有值为1963的元素。//当c是vector,string,deque时,erase-remove习惯用法是删除特定值元素的最好办法c.erase(remove(c.begin,c.end,1963),c.end);//对于listc.remove(1963);//对于关联容器c.erase(1963);...原创 2018-03-18 17:41:46 · 341 阅读 · 0 评论 -
多项式的表达与处理(模板)
struct node{ int num[N]; int cnt;}a,b;int muti(int k){ for(int i=0;i<a.cnt;i++) a.num[i]*=k; int i; for(i=0;i<a.cnt;i++) { a.num[i+1]+=a.num[i]/10; ...原创 2018-03-12 16:09:19 · 525 阅读 · 0 评论 -
数字与字符串相互转换
1.数字转字符串:使用sprintf()函数char str[10];int a=1234321;sprintf(str,"%d",a);--------------------char str[10];double a=123.321;sprintf(str,"%.3lf",a);--------------------char str[10];int a=175;sprin...原创 2018-01-28 16:27:02 · 10236 阅读 · 0 评论 -
中缀表达式的计算(对浮点数也适用)
计算思路: 先将中缀表达式转换为后缀表达式,即逆波兰表达式,将原来输出的逆波兰表达式地方转化为调用计算逆波兰表达式的函数,如果是在数字后面则应该再传递给函数一个空格,最后栈顶元素即为最后的值。 具体代码如下:#include<stdio.h>#include<string.h>#include<vector>#include<iostre...原创 2018-03-19 16:25:12 · 859 阅读 · 0 评论 -
用vector容器给map排序
//题目描述:找寻一堆数据中哪个数据出现的最多;//第一种思路:用c语言直接存放数组;//第二种思路:用map存放,存放到vector中 //vector容器 中关于map对象的排序; struct cmpByValue { bool operator()(const PAIR& left, const PAIR& right) { ...原创 2018-01-29 18:36:51 · 934 阅读 · 4 评论 -
多边形问题
#include <ctime>#include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>using namespace std;int mini,maxi;int n;int m[100][100][2]; ...原创 2018-04-07 16:05:40 · 524 阅读 · 0 评论 -
生成一个区间的随机数
inline int Random(int x, int y){ int ran_num = rand() % (y - x) + x; return ran_num;}原创 2018-03-31 20:09:43 · 2144 阅读 · 0 评论 -
汉诺塔
#include<iostream>#include<stdio.h>using namespace std;void hannuo(int n,char start,char transfer,char end){ if(n==0) { } else { hannuo(n-1,start,end,trans...原创 2018-03-26 15:20:51 · 127 阅读 · 0 评论 -
最接近点对问题
参考链接#include <iostream>#include <stdio.h>#include <cmath>#include <algorithm>using namespace std;const int MAXN=100005;struct Point{ double x; double y;}...原创 2018-04-01 10:12:29 · 1062 阅读 · 1 评论 -
KMP算法☞next实现
//观看小甲鱼数据结构与算法终于把KMP算法的next数组搞懂了。//不懂的伙伴们可以看看小甲鱼的视频。//关键是找前缀跟后缀的相同个数。next[100];void get_next(string T){ //i是后缀,j是前缀,前缀是固定的,后缀是相对的。 int j=0; int i=1; next[1]=0; while(i<T.s...原创 2018-03-26 16:52:58 · 288 阅读 · 0 评论 -
POJ1220 (任意进制之间的相互转换)
以十进制为中转。#include<iostream>#include<stdio.h>#include<algorithm>#include<stdlib.h>#include<string.h>using namespace std;int main(){ ios::sync_with_stdio(fals...原创 2018-04-15 00:51:00 · 668 阅读 · 1 评论 -
POJ 1001(浮点数大整数相乘)
第一次自己做这种模拟水题一次AC,庆祝下。 浮点数需要考虑整数跟浮点数两种情况。#include<iostream>#include<stdio.h>#include<algorithm>#include<stdlib.h>#include<string.h>using namespace std;int sum...原创 2018-04-14 18:09:16 · 559 阅读 · 0 评论 -
图像压缩(dp)
自我感觉写的还不错的两个博客。 https://blog.csdn.net/zskucandoit/article/details/51307528 https://blog.csdn.net/bingqingsuimeng/article/details/78675855 关键是理解意思。 数组太多有点搞混。 符代码:#include<iostream>#incl...原创 2018-04-09 22:32:00 · 1025 阅读 · 0 评论