王道机试指南读后总结-3
1.树中一个很容易出先现的问题:
已知树的先序和中序遍历构建树。
#include <stdio.h>
#include <string.h>
struct Node{Node *lchild;Node *rchild;char c;
}Tree[50];
int loc;
Node *Create(){ //创建新节点Tree[loc]->lchild=Tree[loc]->rchild=NULL;return &Tree[loc++];
}
char str[30],str2[30];
void postOrder(Node *T){if(T!=NULL){postOrder(T->lchild);postOrder(T->rchild);printf("%c",T->c);}
}
Node *build(int l1,int r1,int l2,int r2){ //由两个字符串建立二叉树Node* ret=Create();rec->c=str1[l1]; //前序遍历第一个字符int rootidx;for(i=l2;i<r2;i++){if(str2[i]==str1[l1]){rootidx=i;break;}}if(rootidx!=l2) //左子树不为空ret->lchild=build(l1+1,l1+rootidx-l2,l2,rootidx-1);if(rootidx!=r2) //右子树不为空ret->rchild=build(l1+rootidx-l2+1,r1,rootidx+1,r2);return ret;
}
int main(){whiel(scanf("%s",str1)!=EOF){scanf("%s",str2);loc=0;int L1=strlen(str1);int L2=strlen(str2);Node *T=build(0,L1-1,0,L2-1);postOrder(T);printf("\n");}return 0;
}
2.数学问题例题:求a的b次方的后三位
如果输入规模大,直接求然后取后三位肯定是不行了,所以在计算的时候我们的中间值也保留到后三位即可。并且用到二分求幂的技巧。
#include <stdio.h>
int main(){int a,b;while(scanf("%d%d",&a,&b)!=EOF){if(a==0&&b==0) break; 半年内女女女女女女女女女int ans=1;while(b!=0){if(b%2==1){ans*=a;ans%=1000;}b/=2;a*=a; //a的权值变大ans%=1000; //中间值只保留后三位}printf("%d\n",ans);}return 0;
}
3.在图论问题邻接表的模拟时,可以使用std::vector来实现链表
vector在这里的简单使用方法:
vector edge[N]; 数组中的元素即vector对象
开头
#include <vector>
using namespace std;for(i=0;i<N;i++){edge[i].clear(); //清空单链表
}
edge[0].push_back(1); //将1插入结点0的单链表中
edge[0].erase(edge[0].begin()+i,edge[0].begin()+i+1); //这里是删除i,即erase里面是第一个要删除的元素编号和最后一个要删除的元素编号+1
4.并查集可用来求图上联通分量个数,也可求得并查集中元素个数最多是多少。同理,这启发我们可以在并查集的根节点保存其他额外信息,并且在集合合并的过程中
维护该值,以便用来求解某些集合问题,
王道机试指南读后总结-3相关推荐
- 王道机试指南读后总结-1
为了准备一下竞赛,开始从基础的研究生机试题刷起.今天看完了第二章大部分,第二章主要是介绍了排序.日期类问题.Hash.排版问题.查找.贪心等在机试中频繁出现的基本算法. 对于排版问题,一般来说可以看样 ...
- 王道机试指南读后总结-5(迷宫深搜问题详解)
深度优先搜索: 当迷宫问题不要求我们求解最优解,而是判断是否存在一条符合条件的路径,我们用深度优先搜索. 每秒走一格,问是否存在一条路使主人公在T秒时恰好刚走到终点. 思路: 1.若起点的坐标和的奇偶 ...
- 王道机试指南读后总结-6(动态规划等)
递推求解: N阶楼梯上楼问题.一次可走一阶或两阶,问有多少种上楼方式. 这同时也是裴波那契数列问题,当N>2时,走最后一次有两种情况,分从N-1到N和N-2到N,则F(N)=F(N-1)+F(N ...
- 王道机试指南读后总结-4(有迷宫问题)
搜索: 1.百鸡问题 这种枚举问题注意的是有没有隐含条件减少枚举量,例如小鸡的个数可以用100-公鸡-母鸡得到而减少了循环层数. 还有的是在第二层循环就可以母鸡的循环上限其实就是100-公鸡数 2.B ...
- 王道机试指南读后总结-2
1.复杂度的估计: 如果题目给了一秒运行实限,也是最常见的运行时限,通常算法复杂度不能超过百万级别,即不能超过一千万.举个例子就是O(n²)时间复杂度的n不应大于3000. 2.//scanf函数的返 ...
- 王道机试指南NO.8最大公约数
时间限制:1s 内存限制32MB 题目描述 输入两个正整数,求其最大公约数. 输入 测试数据有多组,每组输入两个正整数. 输出 对于每组输入,请输出其最大公约数. 样例输入 49 14 样例输出 7 ...
- 机试指南第七章-动态规划-笔记及背包问题
第七章 动态规划 一.递归求解: 递归问题的关键是解决初始值和递推公式,从而将复杂问题分解为简单问题直至初始值对应的极简问题,从而得到答案. 套路:初始值+递归公式. Trick:将求出的值存 ...
- 王道出版的机试指南_《王道论坛计算机考研机试指南》试读版.pdf
<王道论坛计算机考研机试指南>试读版 王道论坛 王道论坛计算机考研机试指南 王道论坛 2013.01.06 写在前面的话 各位王道的小崽子们,今天你们考完初试了,感觉解放了吧?轻松了吧?无 ...
- 王道考研机试指南代码合集
王道考研机试指南代码合集 github链接 王道考研机试指南的代码合集,附有一些笔记和感悟 文件夹中包括机试指南的pdf,笔记部分,和代码对应题目的列表 如发现任何问题欢迎在下面留言 更新: 最短路题 ...
最新文章
- 2019RPA财务行业峰会:财务数字化转型
- CNN人脸关键点检测
- 黑马程序员--学习while、do-while、for循环、try-catch的用法
- EE Servlet 3:简单表单处理
- vue样式绑定与事件处理器的基本使用
- Angularjs基础(三)
- Python学习笔记:安装OBSFTP时出现的版本异常问题
- (转)如何在maven的pom.xml中添加本地jar包
- okhttp builder_从 OkHttp 到 Retrofit 到 OkHttps
- 【华为云技术分享】《跟唐老师学习云网络》 - Veth网线
- 9.22 keep studying
- C语言计算机二级考动态分配内存吗,08年计算机二级C语言辅导:malloc动态分配的内存的生存周期是多少?...
- 对接门禁分享门禁二维码图片报错
- Linux磁盘管理:LVM逻辑卷管理
- 机器学习结果指标评估
- 【Python学习】Python的点滴积累
- word文档通配符换行_PDF如何转化成Word文档?
- linux常用软件收集
- 小程序发布上线-微信小程序开发-视频教程17
- 程序员给小孩取的名字