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. 王道机试指南读后总结-1

    为了准备一下竞赛,开始从基础的研究生机试题刷起.今天看完了第二章大部分,第二章主要是介绍了排序.日期类问题.Hash.排版问题.查找.贪心等在机试中频繁出现的基本算法. 对于排版问题,一般来说可以看样 ...

  2. 王道机试指南读后总结-5(迷宫深搜问题详解)

    深度优先搜索: 当迷宫问题不要求我们求解最优解,而是判断是否存在一条符合条件的路径,我们用深度优先搜索. 每秒走一格,问是否存在一条路使主人公在T秒时恰好刚走到终点. 思路: 1.若起点的坐标和的奇偶 ...

  3. 王道机试指南读后总结-6(动态规划等)

    递推求解: N阶楼梯上楼问题.一次可走一阶或两阶,问有多少种上楼方式. 这同时也是裴波那契数列问题,当N>2时,走最后一次有两种情况,分从N-1到N和N-2到N,则F(N)=F(N-1)+F(N ...

  4. 王道机试指南读后总结-4(有迷宫问题)

    搜索: 1.百鸡问题 这种枚举问题注意的是有没有隐含条件减少枚举量,例如小鸡的个数可以用100-公鸡-母鸡得到而减少了循环层数. 还有的是在第二层循环就可以母鸡的循环上限其实就是100-公鸡数 2.B ...

  5. 王道机试指南读后总结-2

    1.复杂度的估计: 如果题目给了一秒运行实限,也是最常见的运行时限,通常算法复杂度不能超过百万级别,即不能超过一千万.举个例子就是O(n²)时间复杂度的n不应大于3000. 2.//scanf函数的返 ...

  6. 王道机试指南NO.8最大公约数

    时间限制:1s 内存限制32MB 题目描述 输入两个正整数,求其最大公约数. 输入 测试数据有多组,每组输入两个正整数. 输出 对于每组输入,请输出其最大公约数. 样例输入 49 14 样例输出 7 ...

  7. 机试指南第七章-动态规划-笔记及背包问题

    第七章     动态规划 一.递归求解: 递归问题的关键是解决初始值和递推公式,从而将复杂问题分解为简单问题直至初始值对应的极简问题,从而得到答案. 套路:初始值+递归公式. Trick:将求出的值存 ...

  8. 王道出版的机试指南_《王道论坛计算机考研机试指南》试读版.pdf

    <王道论坛计算机考研机试指南>试读版 王道论坛 王道论坛计算机考研机试指南 王道论坛 2013.01.06 写在前面的话 各位王道的小崽子们,今天你们考完初试了,感觉解放了吧?轻松了吧?无 ...

  9. 王道考研机试指南代码合集

    王道考研机试指南代码合集 github链接 王道考研机试指南的代码合集,附有一些笔记和感悟 文件夹中包括机试指南的pdf,笔记部分,和代码对应题目的列表 如发现任何问题欢迎在下面留言 更新: 最短路题 ...

最新文章

  1. 2019RPA财务行业峰会:财务数字化转型
  2. CNN人脸关键点检测
  3. 黑马程序员--学习while、do-while、for循环、try-catch的用法
  4. EE Servlet 3:简单表单处理
  5. vue样式绑定与事件处理器的基本使用
  6. Angularjs基础(三)
  7. Python学习笔记:安装OBSFTP时出现的版本异常问题
  8. (转)如何在maven的pom.xml中添加本地jar包
  9. okhttp builder_从 OkHttp 到 Retrofit 到 OkHttps
  10. 【华为云技术分享】《跟唐老师学习云网络》 - Veth网线
  11. 9.22 keep studying
  12. C语言计算机二级考动态分配内存吗,08年计算机二级C语言辅导:malloc动态分配的内存的生存周期是多少?...
  13. 对接门禁分享门禁二维码图片报错
  14. Linux磁盘管理:LVM逻辑卷管理
  15. 机器学习结果指标评估
  16. 【Python学习】Python的点滴积累
  17. word文档通配符换行_PDF如何转化成Word文档?
  18. linux常用软件收集
  19. 小程序发布上线-微信小程序开发-视频教程17
  20. 程序员给小孩取的名字

热门文章

  1. SAP License:ReportPainter报表显示JPY等无小数位货币时少两位
  2. 线上风控与数据埋点三部曲(一)——流量江湖不是处女地,投放渠道需谨慎
  3. idea迁移到其他电脑,省去重新安装破解及配置
  4. ImageMagick的下载和配置
  5. Mysql中把varchar类型的字段转化为tinyint类型的字段
  6. 通过第三方工具体验Microsoft Graph
  7. MyEclipse从数据库反向生成实体类通过Hibernate的方式----mysql数据库实例
  8. linux下与windows下的换行符
  9. Oracle中的包、存储过程、函数被锁定解决方案
  10. 我的小快排(两种分割方法)