
C++笔试题
文章平均质量分 75
ai_XZP_master
本人计算机专业,主要研究人工智能、计算机视觉、物体检测。
展开
-
C++笔试题模版汇总(五)动态规划/贪心
动态规划背包问题问题:有N件物品和一个容量是V的背包。每件物品只能使用一次。第i件物品的体积是vi,价值是wi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。分析:每次只能选择一个物品。有4个物品,最大容量是5:2和3加起来刚好不超过背包最大体积,所以最大为8.动态规划要用两个方面来表示:1、状态表示:需要几维,f...原创 2020-04-23 11:10:31 · 912 阅读 · 0 评论 -
每日四题打卡-4.5:快速幂/高斯消元解线性方程组/求组合数
快速幂定义:快速求出来a^k mod p的结果。朴素做法:(时间复杂度很高)优化:拆成若干个数次幂之和。举例:给定nn组ai,bi,pi,对于每组数据,求出abiimodpi的值。输入格式第一行包含整数nn。接下来nn行,每行包含三个整数ai,bi,pi。输出格式对于每组数据,输出一个结果,表示abiimodpi的值。每个结果占一行。...原创 2020-04-05 14:59:59 · 270 阅读 · 0 评论 -
C++ STL 体系结构与内核分析(五)算法入门/迭代器分类/算法源码剖析(11个例子)
C++标准库算法入门概念:STL六大部件,算法就是模版函数,很独特,标准库的样子如下图右下角那两框代码所示。其实算法是要处理容器里的data,只探讨迭代器。:算法看不见容器,算法所获取的信息,需要从迭代器去取,如果算法获取不到迭代器的信息则会报错。迭代器分类迭代器移动规则:array/vector(双端队列)/链表:list(双向)、forward_list(单向)/红黑树:s...原创 2020-04-04 16:55:11 · 178 阅读 · 0 评论 -
每日四题打卡-4.4:求约数个数/约数之和/最大公约数/欧拉函数
求约数个数给定n个正整数aiai,请你输出这些数的乘积的约数个数,答案对109+7109+7取模。输入格式第一行包含整数n。接下来n行,每行包含一个整数aiai。输出格式输出一个整数,表示所给正整数的乘积的约数个数,答案需对109+7109+7取模。数据范围1≤n≤1001≤n≤100,1≤ai≤2∗1091≤ai≤2∗109输入样例:3268...原创 2020-04-04 11:47:55 · 2925 阅读 · 0 评论 -
阿里笔试3.30题目
1,小强有n个养鸡场,弟i个养鸡场初始有a[i]只小鸡。与其他养鸡场不同的是,他的养鸡场每天增加k只小鸡,小强每天结束都会在数量最多的养鸡场里卖掉一半的小鸡,假如一个养鸡场有x只鸡,则卖出后只剩下x/2(向下取整)只鸡。问m天后小强的n个养鸡场一共多少只小鸡?输入 第一行输入三个int类型n,m,k(1 <= n,m,k <= 10^6) 第二行输入n个正整数,表示n个养鸡场初始鸡...原创 2020-04-03 12:17:57 · 841 阅读 · 0 评论 -
每日四题打卡-4.3:判质数/分解质因数/筛质数/求约数
判质数质数概念:在大于1的整数中,如果只包含1和本身这两个约数,就被称为质数或者叫素数。质数性质:如果d/n能整除,那么n/d / n也能整除。比如n = 12, 3和4都是他的约数,n的约数都是成对出现的 。在枚举的时候我们可以只枚举没对较小的一个就可以了。给定n个正整数aiai,判定每个数是否是质数。输入格式第一行包含整数n。接下来n行,每行包含一个正整数ai...原创 2020-04-03 10:47:06 · 301 阅读 · 0 评论 -
每日四题打卡-4.2:最小生成树/染色法判定二分图/匈牙利算法-二分图的最大匹配
Prim算法求最小生成树步骤:1、距离初始化成正无穷2、n次迭代-》找到集合外距离最近的点,赋值给t3、用t更新其他点到集合的距离(跟狄杰斯塔拉不一样,狄杰斯塔拉是跟原点的距离),点与集合所有点距离最短的点:st[t] = true给定一个n个点m条边的无向图,图中可能存在重边和自环,边权可能为负数。求最小生成树的树边权重之和,如果最小生成树不存在则输出impossib...原创 2020-04-02 13:04:04 · 224 阅读 · 0 评论 -
每日四题打卡-3.28:bellman-ford-有边数限制的最短路/spfa-求最短路/spfa-判断负环/Floyd-求最短路
bellman-ford-有边数限制的最短路给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。请你求出从1号点到n号点的最多经过k条边的最短距离,如果无法从1号点走到n号点,输出impossible。给定一个n个点m条边的有向图,图中可能存在重边和自环,边权可能为负数。请你求出从1号点到n号点的最多经过k条边的最短距离,如果无法从1号点走到n号点,输出imp...原创 2020-03-31 18:52:00 · 725 阅读 · 0 评论 -
每日四题打卡-3.28:树与图的宽度优先遍历-图中点的层次/拓扑排序-有向图的拓扑排序/Dijkstra求最短路径/优化版-Dijkstra求最短路径
1、树与图的宽度优先遍历-图中点的层次给定一个n个点m条边的有向图,图中可能存在重边和自环。所有边的长度都是1,点的编号为1~n。请你求出1号点到n号点的最短距离,如果从1号点无法走到n号点,输出-1。给定一个n个点m条边的有向图,图中可能存在重边和自环。所有边的长度都是1,点的编号为1~n。请你求出1号点到n号点的最短距离,如果从1号点无法走到n号点,输出-1。输入格式...原创 2020-03-28 12:01:19 · 311 阅读 · 0 评论 -
每日四题打卡-3.27:DFS-n-皇后问题/BFS-走迷宫/BFS-八数码/树与图的深度优先遍历-树的重心
1、DFS-n-皇后问题n-皇后问题是指将 n 个皇后放在 n∗n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数n,请你输出所有的满足条件的棋子摆法。输入格式共一行,包含整数n。输出格式每个解决方案占n行,每行输出一个长度为n的字符串,用来表示完整的棋盘状态。其中”.”表示某一个位置的方格状态为空,”Q”...原创 2020-03-27 11:11:31 · 368 阅读 · 0 评论 -
每日四题打卡-3.25:模拟堆/哈希表/字符串哈希/DFS排列数字
1、模拟堆实际上与昨天的堆排序一样的操作,不过多了几个别的操作,具体看下图,主要还是昨天那个经常考所以这个看看就好:维护一个集合,初始时集合为空,支持如下几种操作:“I x”,插入一个数x; “PM”,输出当前集合中的最小值; “DM”,删除当前集合中的最小值(数据保证此时的最小值唯一); “D k”,删除第k个插入的数; “C k x”,修改第k个插入的数,将其变为x;...原创 2020-03-25 12:22:18 · 207 阅读 · 0 评论 -
每日四题打卡-3.24:合并集合/连通块中点的数量/食物链/堆排序
1、合并集合并查集:1、将两个集合合并 2、询问两个元素是否在一个集合当中每一个集合用树来表示,树根的编号就是整个集合的编号。每个节点存储他的父节点,p[x]表示x的父节点。问题1:如何判断树根?if (p[x] == x)问题2:如何求x的集合编号:while(p[x] != x) x = p[x]问题3:如何合并两个集合:p[x]是x的集合编号,py是y的集合编号。p[...原创 2020-03-24 12:20:23 · 315 阅读 · 0 评论 -
每日三题打卡-3.23:KMP/trie树/最大异或对
1、KMP算法给定一个模式串S,以及一个模板串P,所有字符串中只包含大小写英文字母以及阿拉伯数字。模板串P在模式串S中多次作为子串出现。求出模板串P在模式串S中所有出现的位置的起始下标。输入格式第一行输入整数N,表示字符串P的长度。第二行输入字符串P。第三行输入整数M,表示字符串S的长度。第四行输入字符串S。输出格式共一行,输出所有出现位置的起始下标(下...原创 2020-03-23 14:31:10 · 217 阅读 · 0 评论 -
每日四题打卡-3.20:区间合并/链表/栈和队列
1、区间合并给定nn个区间[li,ri][li,ri],要求合并所有有交集的区间。注意如果在端点处相交,也算有交集。输出合并完成后的区间个数。例如:[1,3]和[2,6]可以合并为一个区间[1,6]。输入格式第一行包含整数n。接下来n行,每行包含两个整数 l 和 r。输出格式共一行,包含一个整数,表示合并区间完成后的区间个数。数据范围1≤n≤100...原创 2020-03-20 14:50:54 · 273 阅读 · 0 评论 -
每日四题打卡-3.19:最长不连续子串/数组元素和/二进制1的个数/离散化
1、最长不连续子串给定一个长度为n的整数序列,请找出最长的不包含重复数字的连续区间,输出它的长度。输入格式第一行包含整数n。第二行包含n个整数(均在0~100000范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复数字的连续子序列的长度。数据范围1≤n≤1000001≤n≤100000输入样例:51 2 2 3 5输出样例:...原创 2020-03-19 10:30:40 · 593 阅读 · 0 评论 -
每日四题打卡-3.18:前缀矩阵和/查分
1、前缀和输入一个长度为n的整数序列。接下来再输入m个询问,每个询问输入一对l, r。对于每个询问,输出原序列中从第l个数到第r个数的和。输入格式第一行包含两个整数n和m。第二行包含n个整数,表示整数数列。接下来m行,每行包含两个整数l和r,表示一个询问的区间范围。输出格式共m行,每行输出一个询问的结果。数据范围1≤l≤r≤n1≤l≤r≤n,1≤n,m...原创 2020-03-18 12:07:52 · 197 阅读 · 0 评论 -
每日四题打卡-3.17:高精度运算
1、高精度加法给定两个正整数,计算它们的和。输入格式共两行,每行包含一个整数。输出格式共一行,包含所求的和。数据范围1≤整数长度≤1000001≤整数长度≤100000输入样例:1223输出样例:35//犯了两个很蠢的错误:1、main写成mian 2、push_back,写成push.back!!!//步骤:输入a,定义为位string...原创 2020-03-17 12:53:53 · 314 阅读 · 0 评论 -
每日四题打卡-3.16:常用排序算法
每日四题打卡:自己以前敲过的代码重新从头到尾敲一遍,并标注自己的错误地方以提示自己。每天晚上复习一遍!重新敲一遍!3.16:常用排序算法1、快速排序:给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。时间复杂度:当数据有序时,以第一个关键字为基准分为两个子序列,前一个子序列为空,此时执行效率最差。而当数据随机分布时,以...原创 2020-03-16 11:04:12 · 409 阅读 · 0 评论 -
C++笔试题模版汇总(四)
1、质数//1、试除法bool is_prime(int n){ if (n < 2) return false; for (int i = 2; i <= n; i ++) if (n % i == 0) return false; return true;}//2、试除法优化/*如果d/n能整除,那么n...原创 2020-03-11 09:55:30 · 432 阅读 · 0 评论 -
C++笔试题模版汇总(三)
1、邻接矩阵对于无向图中的边ab,存储两条有向边a->b, b->a。因此我们可以只考虑有向图的存储。(1) 邻接矩阵:g[a][b] 存储边a->b(2) 邻接表:// 对于每个点k,开一个单链表,存储k所有可以走到的点。h[k]存储这个单链表的头结点int h[N], e[N], ne[N], idx;// 添加一条边a->b,链表操作:插入元...原创 2020-03-10 19:36:31 · 668 阅读 · 0 评论 -
C++笔试题模版汇总(二)
1、单链表//head表示头节点下标//e[i]表示节点i的值//ne[i]表示节点i的next指针是多少//idx存储当前已经用到了哪个点int head, e[N], ne[N], idx; //初始化void init(){ head = -1; idx = 0;} //将x插到头节点void add_to_head(int x){ /...原创 2020-03-09 10:35:46 · 381 阅读 · 0 评论 -
C++笔试题模版汇总(一)
1、快速排序//1、确定分界点x:q[l] or q[r] or q[(l+r)] //2、取中间数,也可以取随机数。调整区间范围:左端所有数<=x,右端所有数>=x//3、递归排序left,递归排序right)void quick_sort(int q[], int l, int r){ if (l >= r) return;...原创 2020-03-07 17:39:17 · 479 阅读 · 0 评论