J组400分 全知识点测评问卷

发布时间 2023-11-30 14:40:47作者: 陆留生信奥艺术
  1. 是否会手写队列的函数代码

如果会请自己手动写一下 五个操作的代码

int a[1005];

int tail=

int head=

void push(int x){//入队操作

}

//出队操作

//查看队头

//查看队尾

//查看队列元素个数

 

  1. 什么情况下一个题需要使用到队列?队列到底在题目当中起了什么样的作用?举一个曾经用队列做过的题(洛谷题号写下来/没有就不写)//注意以上问题BFS的题不算在内

 

  1. 如果是双端队列 tailhead的初始值应该作何更改?

 

  1. 在已经构造好前缀和数组b的情况下 求第x个数到第y个数的和 如何求?b[ ] - b[ ]

 

  1. 前缀和在什么情况下使用?为什么一个题需要用到前缀和?

 

  1. sort和桶排序(计数排序)的区别是什么,这两种排序方式分别在哪种情况下使用更好?

 

  1. 筛选法是否学过 埃氏和欧拉 能否熟练默写?

 

  1. 埃氏和欧拉分别在1s内可以完成大概10的几次方的数据规模,即筛选110的几次方之内的质数可以保证时间在1s以内?哪种更快?10^9次方的数据规模 欧拉筛可以做到不超时吗?

 

  1. 字符是否会判断和转换大小写

 

  1. 是否使用过以下几个字符串相关的函数 find() getline()while(cin>>) substr() insert() size() sscanf() 将会熟练使用的写在下方

 

  1. 什么时候用getline() 什么时候用while(cin>>)

 

  1. 整数ab 最小公倍数如何求? 即 lcm(a,b)= ?

 

  1. 会使用栈来做前中后缀表达式的转换吗?会熟练默写吗?

 

  1. 会使用栈来求表达式的值吗?

 

  1. 在一堆数据里进行二分查找 这些数据有什么必备条件吗?

 

  1. 可以写一个二分答案的方式来解鸡兔同笼吗?

int x,y;

cin>>x>>y;//x是总头数 y是总脚数 二分兔子的数量

 

  1. 为什么一个题需要用二分来做?

 

  1. 请用递归的方式完成输出1-n-1 即如果n=6 输出12345654321

void f(int n){//n一开始为6

 

}

 

  1. 什么时候需要使用BFS

 

  1. 一个图的构造 即 邻接矩阵和邻接表都会吗? 什么时候使用邻接矩阵更好?

 

  1. 会使用二叉树的深搜遍历来计算一个表达式的值吗?例如 5+3-(2/4)*4

 

  1. 会默写以下几种背包的模板代码吗? 0/1 完全 多重 混合 二维费用

 

  1. 为什么0/1背包代码在维度优化过后 的第二重循环是从最大背包容量开始前方遍历的?如果改成从小到大遍历 会出现什么问题?

 

  1. 0/1背包 求 方案数 会吗?

 

  1. 什么样的题需要用到动态规划?把你对动态规划的理解全部写下来?