
算法
touristourist
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构基础
二叉树 https://www.cnblogs.com/Camilo/p/3903080.html https://blog.youkuaiyun.com/u010558281/article/details/74276577 生成二叉树: 根据一串字符在内存中生成二叉树 struct BiNode{ int data; struct BiNode* left; struct BiN...原创 2019-07-02 10:41:51 · 179 阅读 · 0 评论 -
最短路+差分约束
dijikstra不能求最长路 spfa求最短路可以判断负环,求最长路可以判断正环 差分约束系统详解(解释为什么要设置超级源点,判断连通性 差分约束介绍 POJ 1364 King(非连通图的差分约束,经典好题) 再卖菜csdn SPFA(shortest path fast algorithm)及差分约束 参考链接(夜深人静写算法) spfa求最短路/最长路数据结构及代码 //SPFA求最短...原创 2019-06-29 21:53:50 · 337 阅读 · 0 评论 -
搜索算法
DFS深度优先搜索 部分和问题: 给定整数a1 ,a2 ,… an,判断是否可以从中选出若干数,使得他们的和恰好为k。若存在输出true,否则输出false. int a[MAX_N]; //a[0]~a[n-1] int n,k; bool dfs(int i,int sum) //表示已经从前i个数做出选择,当前所选数的和为sum.i=0时表示还未开始选择 { if(i==n...原创 2019-06-29 21:52:58 · 326 阅读 · 0 评论 -
各种排序
冒泡排序 每次排序将当前最大的冒泡到当前需排序的最末尾。 选择排序 将当前待排序部分最小的数和当前数字交换,然后对下一个数字进行排序。 插入排序 当前处理数字的左边为已经排好序的,右边为待排序部分,将当前数字在左边数字中找到对应位置插入。 void insertion_sort(int arr[],int len){ for(int i=1;i<len;i++){ ...原创 2019-06-29 21:52:22 · 136 阅读 · 0 评论 -
MST算法
无向图中,如果它的子图是连通图,并且是一颗树,则称其为生成树。 如果生成树的各边权值之和最小,则称其为最小生成树(MST)。 Prim算法求最小生成树: int cost[MAX_V][MAX_V]; //边 int mincost[MAX_V]; //当前集合到该点的最短距离 bool used[MAX_V]; //标记该边是否纳入集合中 int V; ...原创 2019-06-29 21:51:41 · 3491 阅读 · 0 评论 -
STL及C++
字体:consolas 字号:11 devcpp支持c++11的命令 :-std=c++11 Stack #include<stack> stack<TYPE> StackName; bool empty(); void pop(); void push(const TYPE &val); TYPE &top(); size_type size(); ...原创 2019-06-29 21:50:00 · 336 阅读 · 0 评论 -
字符串hash
hash入门题 字符串HASH 字符串hash入门 字符串hash 洛谷hash模板题 hash入门到精通-知乎 hash直观说就是将一个字符串映射到一个整数(hash值)。需要确定p和mod的值 形成hash映射后,有如下应用: hash的多种应用 求有多少不同的串:相同的串一定对应相同的hash值,不同的串一般大概率对应的是不同的值(有可能产生冲突),所以求出有多少不同的hash...原创 2019-06-29 21:48:38 · 242 阅读 · 0 评论 -
算法中数学问题
数学问题 1.欧几里得及其扩展 线段上格点的个数: int gcd(int a, int b) //欧几里得辗转相除递归程序,时间O(logmax(a,b)) { if(b==0) return a; //a,b再一次赋值后,当除数为0返回a,结束 else gcd(b,a%b); //否则a,b,a%b左移,a=b,b=a%b,再一次辗转 } 扩展欧几里得(青蛙的约会)...原创 2019-07-03 14:06:39 · 565 阅读 · 0 评论 -
其他面试问题(待更新
12个求种只有一个假球(不知道更轻还是更重),称三次找出 将12个球,均分成A,B,C三堆,记为Ai、Bi、Ci。(i = 1,2,3,4) 第一次称A,B两堆,有两种情况,分别讨论: ❶平衡。异常球在C堆,A,B堆8个球正常。C堆中取C1、C2、C3. 第二次称A1+A2+A3与C1+C2+C3。两种情况下: ① 平衡。确定异常球为C4,解决。 ② 不平衡。两种情况: \1. ...原创 2019-07-03 14:04:35 · 199 阅读 · 0 评论 -
计算机面试问题(待更新
进程和线程 线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。 进程是指在系统中正在运行的一个应用程序;线程是系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元。 对于操作系统而言其调度单元是线程。一个进程至少包括一个线程,通常将该线程称为主线程。一个进程从...原创 2019-07-03 14:03:26 · 315 阅读 · 0 评论 -
关于OJ及IO
对于不定量组数据的输入: 1. while(scanf("%d",&a)!=EOF) {...} 或者写成 while(~scanf("%d",&a)) {...} scanf()函数返回成功赋值的数据项数,出错时则返回EOF,EOF定义为-1。 ~是按位取反,-1十六进制补码表示为0x ffffffff,f是二进制的1111,取反后就全部变成0了,于是while结束。...原创 2019-07-03 13:59:59 · 842 阅读 · 0 评论 -
面试算法?
链表逆序操作(不创建额外结构和空间 使用head和prev,next三个指针,prev初始化为null,head初始化为原链表的头节点。head是当前逆序结果新的头,prev是这个新头的next 详细链接 100位十进制数转化为二进制数 https://www.iteblog.com/archives/141.html 就是对字符串的操作,类似可以得出100位二进制数转化为十进制数的算法 找出N个...原创 2019-06-29 21:54:32 · 157 阅读 · 0 评论