C/C++
搬运代码打工人
分享学习
记录日常
展开
-
C与C++联系与区别
C/C++的联系:C++是C的超集,兼容大部分C的语法的结构; 联系嘛我只能想到这个,毕竟cplusplus嘛!C/C++区别:第一点就应该想到C是面向过程的语言,而C++是面向对象的语言,一般简历上第一条都是熟悉C/C++基本语法,了解C++面向对象思想,那么,请问什么是面向对象?C和C++动态管理内存的方法不一样,C是使用malloc/free函数,而C++除此之外还有new/d...原创 2019-08-05 10:27:39 · 132 阅读 · 0 评论 -
第十六天(1)二分求幂
人见人爱 A ^ B内存限制:128 兆特殊判题:否时间限制:1 秒题目描述: 求 ABA^BAB 的最后三位数表示的整数。输入: 输入数据包含多个测试实例,每个实例占一行,由两个正整数 A 和 B 组成(1<=A,B<=10000 ) ,如果 A=0, B=0,则表示输入数据的结束,不做处理。:输出:对于每个测试实例,请输出 A^B 的最后三位表示的整数,每个输出占一行...原创 2019-08-20 10:01:15 · 108 阅读 · 0 评论 -
第十九天:最小生成树(MST)
最小生成树 Kruskal 算法初始时所有节点属于孤立的集合按照边权递增顺序遍历所有的边,若遍历到的边的两个顶点仍分属不同的集合(该边即为连通这两个集合的边中权值最小的那一条,)则确定该边为最小生成树上的一条边,并将这两个定点分属的集合合并遍历完所有边后,原点上所有结点属于同一个集合,则被选取的边和结点构成最小生成树,否则原图不连通,最小生成树不存在。T1还是畅通工程时间限制:1 ...原创 2019-08-23 19:32:53 · 216 阅读 · 0 评论 -
第十六天(2):高精度整数+高精度乘法+高精度进制转换
T1a + b时间限制:1 秒内存限制:32 兆特殊判题:否题目描述: 实现一个加法器,使其能够输出 a+b 的值。输入: 输入包括两个数 a 和 b,其中 a 和 b 的位数不超过 1000 位。输出可能有多组测试数据,对于每组数据,输出 a+b 的值。样例输入:2 610000000000000000000 10000000000000000000000000000000...原创 2019-08-20 13:25:45 · 201 阅读 · 0 评论 -
C语言与C++经典面试题(2)
C++问题1:delete与 delete []区别delete只会调用一次析构函数,而delete[]会调用每一个成员的析构函数。在More Effective C++中有更为详细的解释:“当delete操作符用于数组时,它为每个数组元素调用析构函数,然后调用operator delete来释放内存。”delete与new配套,delete []与new []配套MemTest *...原创 2019-08-12 09:57:35 · 670 阅读 · 0 评论 -
第二十天:最短路径
Floyd思路设 ans[k][i][j] 为结点 i 到结点 j 允许经过编号小于 k 的结点时其最短路径长度,ans[0][i][j]相当于edge[i][j],下完成求解for(int k = 1;k <= n;k++){ for(int i = 1;i <= n;i++){ for(int j = 1;j <= n;j++){ if(ank[k - 1][...原创 2019-08-25 10:42:29 · 159 阅读 · 0 评论 -
第二十一天(1):拓扑排序
问题设有一个有向无环图( DAG 图)对其进行拓扑排序即求其中节点的拓扑序列,对于所有的有向边 ( U, V ) ,在该序列中结点 U 都排在结点 V 前面,满足要求的结点序列被称为满足拓扑次序的序列,求这个序列的过程,即为拓扑排序。循环:我们在第 k 张图上选择一个入度为 0 的结点,将其作为原图的第 k 个结点,并在新图中删去该点,及以该点为弧尾的边。相关知识标准模板库中一个标准模板:...原创 2019-08-25 19:12:04 · 200 阅读 · 0 评论 -
第十七天:图与并查集的简单构建思路
1. 图标准模板库(STL)中的标准模板 std::vector ,了解 vector 在实现邻接链表中的应用struct Edge{ int next Node;//下一节点编号 int cost;//边权重};//用vector模拟单链表,来保存与其相邻的边权值和结点的信息vector<Edge> edge[N];#include <vector>...原创 2019-08-21 16:20:16 · 154 阅读 · 0 评论 -
第十八天:并查集应用
T1畅通工程时间限制:1 秒内存限制:128 兆特殊判题:否题目描述: 某省调查城镇交通状况, 得到现有城镇道路统计表, 表中列出了每条道路直 接连通的城镇。 省政府“畅通工程”的目标是使全省任何两个城镇间都可以实现交通(但不一定有直接的道路相连,只要互相间接通过道路可达即可) 。问最少还需要建设多少条道路? 输入: 测试输入包含若干测试用例。 每个测试用例的第 1 行给出两个正整数,...原创 2019-08-22 18:14:33 · 198 阅读 · 0 评论 -
第十四天(1):二叉排序树+二叉搜索树
T1二叉排序树时间限制:1 秒内存限制:32 兆特殊判题:否题目描述: 输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入: 输入第一行包括一个整数 n(1<=n<=100)。接下来的一行包括 n 个整数。输出: 可能有多组测试数据, 对于每组数据, 将题目所给数据建立一个二叉排序树, 并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一...原创 2019-08-18 11:35:24 · 97 阅读 · 0 评论 -
第十五天(3):素数筛法+分解素因数+整除问题
素数:只能被自身和1整除的大于1的正整数T1素数判定时间限制:1 秒内存限制:32 兆特殊判题:否 :题目描述:给定一个数 n,要求判断其是否为素数(0,1,负数都是非素数) 。输入: 测试数据有多组,每组输入一个数 n。输出: 对于每组输入,若是素数则输出 yes,否则输入 no。样例输入:13样例输出:yes//// main.cpp// Prime_jud...原创 2019-08-19 17:39:46 · 230 阅读 · 0 评论 -
第五天:成绩排序+快速排序
一、成绩排序题目描述:有 N 个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序, 如果姓名的字母序也相同则按照学生的年龄排序, 并输出 N 个学生排序后的信息。输入:测试数据有多组,每组输入第一行有一个整数 N(N<=1000) ,接下来的 N 行包括 N 个学生的数据。 每个学生的数据包括姓名 (长度不超过 100 的字符串) 、年龄(整形数) 、成绩(...原创 2019-08-09 17:43:09 · 647 阅读 · 0 评论 -
面向过程与面向对象
问:计算机语言可以归为面向过程语言和面向对象语言,那么到底什么是面向对象,什么是面向过程呢?答:面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。理解可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,...转载 2019-08-05 10:58:05 · 163 阅读 · 0 评论 -
第一天:三种方法解决摆动序列问题(DP问题)(C语言)
题目问题描述 如果一个序列满足下面的性质,我们就将它称为摆动序列: 1. 序列中的所有数都是不大于k的正整数; 2. 序列中至少有两个数。 3. 序列中的数两两不相等; 4. 如果第i – 1个数比第i – 2个数大,则第i个数比第i – 2个数小;如果第i – 1个数比第i – 2个数小,则第i个数比第i – 2个数大。 比如,当k = 3时,有下面几个这样的序列: ...原创 2019-08-05 12:33:41 · 812 阅读 · 0 评论 -
第四天:字符统计
问题描述 给定一个长度为n的字符串S,还有一个数字L,统计长度大于等于L的出现次数最多的子串(不同的出现可以相交),如果有多个,输出最长的,如果仍然有多个,输出第一次出现最早的。输入格式 第一行一个数字L。 第二行是字符串S。 L大于0,且不超过S的长度。输出格式 一行,题目要求的字符串。输入样例1: 4 bbaabbaaaaa输出样例1: bbaa输入样...原创 2019-08-08 11:28:10 · 464 阅读 · 0 评论 -
C语言与C++经典面试题(1)
C++C语言1. 预处理问题1.1:什么是预编译?答:预编译又称预处理,是整个编译过程最先做的工作,即程序执行前的一些预处理工作。主要处理#开头的指令。如拷贝#include包含的文件代码、替换#define定义的宏、条件编译#if等。.问题1.2:何时需要预编译?1、总是使用不经常改动的大型代码体。2、程序由多个模块组成,所有模块都使用一组标准的包含文件和相同的编译选项。在...原创 2019-08-06 14:08:27 · 164 阅读 · 0 评论 -
new、delete、malloc、free用法与关系
一、用法一.new和delete用法int *pi=new int;int *pi=new int();int *pi=new int(1024); 第一行这个new表达式在自由存储区中分配创建了一个整形对象,并返回一个指向该对象的地址来初始化指针pi。第二行同一行,只是对指针pi指向的地址的值进行了初始化为0。第三行初始化为1024。**当动态创建的对象用完后必须释放内存...原创 2019-08-06 15:47:30 · 308 阅读 · 0 评论 -
C++的对象和类
runoob.com上C++的对象和类概念描述类成员函数类的成员函数是指那些把定义和原型写在类定义内部的函数,就像类定义中的其他变量一样。类访问修饰符类成员可以被定义为 public、private 或 protected。默认情况下是定义为 private。构造函数 & 析构函数类的构造函数是一种特殊的函数,在创建一个新的对象时调用。类的析构函数也...转载 2019-08-07 10:08:54 · 83 阅读 · 0 评论 -
第三天:出现次数最多的整数
问题描述编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 输入格式:第一行是一个整数N,N £ 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。 输出格式:输出只...原创 2019-08-07 11:53:27 · 145 阅读 · 0 评论 -
第十五天(1):最大公约数GCD(欧几里得算法)
1. 定理证明证明:a, b 的最大公约数,同时也是 b, a mod b 的最大公约数若 g 为 a, b(不同时为0)的公约数,则 g 满足:a=g∗l a = g * l a=g∗lb=g∗m b = g * m b=g∗m其中l, m为整数。a和b又可表示为下式:a=b∗k+r a = b * k + r a=b∗k+r变形后得到:g∗l=g∗m∗k+r g * l = ...原创 2019-08-19 10:28:16 · 124 阅读 · 0 评论 -
第十五天(2):最小公倍数(LCM)
最小公倍数(Least Common Multiple):求 a, b 的最小公倍数,即求最小正整数, 使得 cMODa=0c MOD a = 0cMODa=0, cMODb=0c MOD b = 0cMODb=0 ,a, b两数的最小公倍数为两数的乘积除以他们的最大公约数T最小公倍数描述: 给定两个正整数,计算这两个数的最小公倍数。输入: 输入包含多组测试数据,每组只有一行,包括两个...原创 2019-08-19 11:04:52 · 208 阅读 · 0 评论 -
第十四天(2):数位拆解(进制转换:进制a->进制b)
T1特殊乘法描述: 写个算法,对 2 个小于 1000000000 的输入,求结果。特殊乘法举例:123 * 45 = 14 +15 +24 +25 +34+35输入: 两个小于 1000000000 的数 输出: 输入可能有多组数据,对于每一组数据,输出 Input 中的两个数按照题目要求的方法进行运算后得到的结果。样例输入12345样例输出: ;54Method 1/...原创 2019-08-18 14:30:52 · 205 阅读 · 0 评论