- 博客(11)
- 资源 (6)
- 收藏
- 关注
原创 (6)归并排序
int a[M],t[M];//t是辅助数组void merge(int *a,int l,int r){ if(l==r) return; int m=l+r>>1; merge(a,l,m); merge(a,m+1,r); int i=l,k=l,j=m+1; while(i<=m and j<=r) { if(a[i]<=a[j]) t[k++]=a[i++]; else t[k++]=a[j++]; } while(i<.
2020-11-27 16:19:56
190
原创 (5)高精度算法
Ⅰ.高精度加法string add(string p,string q){ string ans; reverse(p.begin(),p.end()); reverse(q.begin(),q.end()); if(p.size()<q.size()) swap(p,q); while(q.size()<p.size()) q+='0'; int f=0,n; for(int i=0; i<p
2020-09-03 22:09:03
162
原创 (4)单源最短路径
题目描述给定一个N个点,M 条有向边的带非负权图,请你计算从S出发,到每个点的距离。 数据保证你能从 S 出发到任意点。(1≤N≤100000,1≤M≤200000,S=1 )算法:dijkstra+堆优化+链式前向星struct edge{ int to,w,nxt;} e[M];struct node{ int id,dis; friend bool operator<(const node& a,const node& b)..
2020-09-03 22:06:53
332
1
原创 (3)快速读入
原理:getchar()的速度最快.注意:本代码不适用于double型.template<class T>inline void qcin(T& x){ int f=1;//f是正负标记,默认为正 x=0; char c=getchar(); while(!isdigit(c)) { if(c eq '-') f=-1; c=getchar();//跳过空白 } wh
2020-09-03 22:04:17
143
原创 (2)矩阵快速幂
算法:矩阵乘法+快速幂改进1. 声明矩阵结构体struct matrix{ int m,n;//记录行与列,以后会用到 long long mat[][];//实际矩阵,尽量开小 void clear() { m=n=0; memset(mat,0,sizeof mat); }} 2.矩阵乘法matrix mul(const matrix& a,const matrix& b){ .
2020-09-03 22:01:54
168
原创 (1)快速幂
原理:将指数转化为二进制表示,指数不断右移,base不断倍增,如果这一位是1则ans乘以base,否则不乘。e.g. 代码:template<class T> //模板化,方便代码重用T qpow(T a,int b) { T ans=1,base=a; while(b) { if(b&1) { if(b&1) ans*=base; ...
2020-09-03 21:53:18
122
原创 引用(&)与常量(const)
开门见山,C++中有三个东西,分别叫做:引用,常量,常量引用。下面阐述三者各自的语法和联系。撇去什么string类型的引用不谈,举最简单的例子吧(int类型)。1.引用比如对int类型的引用如下:int a=1;int &b=a;这里定义了一个(普通)引用 b ,它所指向的是int类型,所以可以把int类型的变量赋给它。因此这样做是错的:int &am...
2018-08-28 16:48:59
1840
转载 高精度阶乘(模板)
#include <iostream>#include <string.h>#include <stdio.h> using namespace std;const int max=3000;int f[3000];int main(){ int i,j,n; scanf("%d",&n); memset(f,0,...
2018-04-30 13:49:04
2713
原创 关于深度优先搜索与回溯
dfs模板:int search(int t){ if(满足输出条件) { 输出解; } else { for(int i=1;i<=尝试方法数;i++) if(满足进一步搜索条件) { 为进一步搜索所需要的状态打上标记; ...
2018-04-05 00:15:48
3681
原创 关于逆向思维在程序设计中的应用
众所周知,逆向思维在知识领域一直倍受青睐,因为这种思想有时能够很巧妙地解决一些看似很难的问题。更有人有此思想设计出强大的算法,如回溯等。下面是一道例题:[例] 编码问题:设有一个数组A:ARRAY[0..N-1]OF INTEGER;数组中存储的元素为0-N-1之间的整数,且A[I]≠A[J] (当I≠J)时。 例如:N=6时,有:(4,3,0,5,1,2) 此时,数组A的...
2018-03-16 20:33:09
929
【HUST/Educoder】存储系统设计全通关代码
2022-06-07
各个浏览器的使用与比较
2018-10-02
数据结构、算法与应用(C++语言描述)代码
2018-10-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人