
笔记
zyhawa
wanna be your friend
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
初探广搜
先上个模板有点类似树的层序遍历,其实层序遍历也可以看作是一种广度优先搜索。void bfs(int s){ //定义队列q,并将起点s入队 queue<int> q; q.push(s); while(!q.empty()){//队列非空时 取队首元素top;//先取出队首元素进行操作 访问队首元素top; 将队首元素出队; //将top下一层的未入队节点全...原创 2020-04-01 17:51:18 · 147 阅读 · 0 评论 -
快排模板
void quicksort(int a[],int left,int right){ int mid=a[(left+right)/2]; int i=left,j=right; do{ while(a[i]<mid) i++; while(a[j]>mid) j--; if(i<=j) swap(a[i],a[j]),i++,j--; }while(i&...原创 2020-03-13 14:33:49 · 308 阅读 · 0 评论 -
背包问题(dfs剪枝优化)
时间复杂度指数级剪枝操作确实可以减去数倍的计算时间clock_t start1,finish1,start2,finish2;double duration1,duration2;const int maxn=40;int n,v,maxValue=0;//物品件数,背包容量,最大价值 int w[maxn],c[maxn];//每件物品的质量和价值 void dfs(int i...原创 2020-03-09 10:38:23 · 412 阅读 · 0 评论 -
二叉树基操
struct node{ char data; node *lchild; node *rchild;};node* newnode(char v){ node* Node=new node; Node->data=v; Node->lchild=Node->rchild=NULL; return Node;}void search(node* root...原创 2020-03-05 19:19:09 · 169 阅读 · 0 评论 -
vector简单用例
vector简单的用例#include<iostream>#include<bits/stdc++.h>#include<cstdio> #include<algorithm>#include<vector>#include<list>#include<string.h>#include<s...原创 2020-03-02 21:38:16 · 254 阅读 · 0 评论 -
xtu p1199 移动路线
描述X桌子上有一个m行n列的方格矩阵,将每个方格用坐标表示,行坐标从下到上依次递增,列坐标从左至右依次递增,左下角方格的坐标为(1,1),则右上角方格的坐标为(m,n)。小明是个调皮的孩子,一天他捉来一只蚂蚁,不小心把蚂蚁的右脚弄伤了,于是蚂蚁只能向上或向右移动。小明把这只蚂蚁放在左下角的方格中,蚂蚁从左下角的方格中移动到右上角的方格中,每步移动一个方格。蚂蚁始终在方格矩阵内移动,请计算出不同...原创 2020-02-29 17:27:55 · 289 阅读 · 1 评论 -
素数快判方法
算法笔记上看到的判断素数的方法,数学家真的????????时间复杂度根号级bool isprime(int n){ if(n<=1) return false;//特判 int sqr=(int)sqrt(1.0*n);//根号 for(int i=2;i<=sqr;i++){ if(n%i==0) return false; } return true;//素数 }如果...原创 2020-02-27 13:56:32 · 185 阅读 · 0 评论 -
大整数四则运算
电脑可以处理很大的数。但是更大的数字运算由于数据类型占有的有限并不能表示出来,所以需要对很大的数字进行大整数处理,光是听着就感觉令人心潮澎湃呢。核心思想:数组存数,一个单元存一位下面是大整数存储,比较的模板:struct bign{ int d[1010]; int len;//记录数有多少位 bign(){ memset(d,0,sizeof(d)); len=0; }...原创 2020-02-26 16:49:08 · 411 阅读 · 0 评论 -
二分法的简单拓展
高中数学也好,初中数学也好,老师都讲过二分法,这类题目多多少少也做过。比如计算根号2的值等等。计算根号2的值(近似的)思想还是二分法//计算根号2的近似值const double eps=1e-5;double f(double x){ return x*x;} double calSort(){ double left=1,right=2,mid;//区间为[1,2] wh...原创 2020-02-25 13:35:14 · 216 阅读 · 1 评论 -
简单的二分法小结
二分法,顾名思义即可接下来瞅瞅二分法可以做些什么a[i]12345678910i0123456789leftmidright根据这张表,可知mid把数组分为了两段。通过两个个标志位left和right,可以计算出mid。具体方法: ...原创 2020-02-25 12:07:18 · 235 阅读 · 0 评论