- 博客(54)
- 资源 (1)
- 收藏
- 关注
原创 C++ algorithm头文件下常用函数
1、max、min、abs(求整型变量的绝对值),等函数。7、find(v.begin(),v.end(),x)返回的是地址,查找不到就返回v.end;3、reverse(ar,ar+5)函数用于将数组ar中前5个元素逆转。reverse(v.begin(),v.end())用于逆转容器v。5、sort(ar,ar+10,com)函数用于对数组ar排序。6、__gcd(a,b)用于求a,b的最大公因数。2、swap(a,b)函数用来交换a、b的值。
2023-04-07 20:02:05
407
原创 动态规划dp
1、状态表示,一般用一个数组表示一个集合,集合的属性是最大值、最小值等。2、状态转移,一般将集合进行划分,以最后一个数值为划分位置。
2023-04-04 17:31:06
167
原创 二分法总结
1、当目标是左区间右端点时,L 的更新方式是L=M,则M计算方式为M=(L+R+1)/2。2、当目标是右区间左端点时,R的更新方式是R=M;则M的计算公式为M=(L+R)/2。在给定n个范围为0~n的数字,按照非递减规则排列,查找一个数值为k的数。为了防止计算M时候溢出,可这样计算M=L+(R-M)/2;
2023-04-02 21:46:12
369
原创 C++中int和long long相乘容易出错的地方
C++中int和long long特别容易被忽略的点,在做乘法的时候即使单个变量在int范围内,如果乘积超了int,也需要将乘数定义为longlong 否则会出错可见 : 只要乘积大于乘数和被乘数数据类型表示的范围,那么乘数和被乘数当中至少有一个的数据类型表示的范围要大于等于乘积结果,不然会数据溢出出错。...
2022-05-03 17:44:53
3947
原创 关于C++中输出精度和位数的控制以及max、min、average
#include #include<bits/stdc++.h>#includeusing namespace std;int main(){int ar[100000];int n;cin>>n;for(int i =0; i<n; i++){ cin>>ar[i];}cout <<setiosflags(ios::fixed)<<setprecision(3)<<(*max_element(ar
2022-04-01 21:19:19
811
原创 什么是面向对象
C++是面向对象的语言,所以说什么是面向对象。按照我的理解,你定义了一个int 类型的对象i,这里的i就是一个对象。而除了int 还有float 、double等类型,当然还有很多自定义的数据类型,你用这些自定义的数据类型去定义一个新的变量,这个变量就是一个对象。你用洗衣机类型去定义一个洗衣机变量,你用自行车类型去定义一个自行车变量。而洗衣机、自行车又由很多的零部件组成,这些一个个的零部件也是一个个的对象,这台洗衣机因此由各种对象组合而成为一个大对象。...
2022-03-28 20:12:54
935
原创 sort函数的用法
一.sort函数1.sort函数包含在头文件为#include的c++标准库中,调用标准库里的排序方法可以实现对数据的排序,但是sort函数是如何实现的,我们不用考虑!2.sort函数的模板有三个参数:void sort (RandomAccessIterator first, RandomAccessIterator last, Compare comp);(1)第一个参数first:是要排序的数组的起始地址。(2)第二个参数last:是结束的地址(最后一个数据的后一个数据的地址)(3)第三个
2022-03-28 19:30:51
1443
原创 第八章:排序
插入排序:直接插入排序:时间复杂度为:O(n^2),空间复杂度为:O(1),是稳定排序折半插入排序:时间复杂度为:O(n^2),空间复杂度为:O(1),是稳定排序希尔排序:当n趋向于无穷的时候为O((log2n)^2),空间复杂度为:O(1),不是稳定排序。只能用于顺序存储结构。n越大越好。在序列接近有序的情况下,直接插入排序要优于折半插入排序,折半插入排序要求存储结构必须是线性表交换排序:冒泡排序:时间复杂度为O(n^2),空间复杂度为O(1),是稳定排序,可以用于链式结构,比直接插入排序要差
2021-12-17 12:17:00
263
原创 数据结构二叉树知识点总结
节点的度:一个节点含有子树的个数就是该节点的读。叶节点:度为零的节点就是叶节点节点的祖先:从根到该节点的路径上所有节点都是节点的祖先子孙:以该节点为根的子树中,任一节点都称为该节点的子孙森林:由m棵互不相交的树的集合成为森林满二叉树:一棵深度为k,且有2^k-1 (2的k次方减一)个节点称之为满二叉树完全二叉树:完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都与深度为K的满二叉树中编号从1至n的结点一一对应时称之为完全二叉树二叉树的性质:在非空二叉
2021-12-10 08:47:36
490
原创 数据结构第二章复习之--------顺序表
线性表可以用顺序表实现,也可用链表实现。顺序表的特点:1、逻辑上相邻的数据元素,其物理次序也是相邻的。2、线性表的顺序存储结构是一种随机存取的存储结构------------------------------顺序表的存储结构--------------------------------#define MAXSIE 100typedef struct{ int *data; int length;}SqList ;#data 可以任何是自定义的数据类型。...
2021-11-30 22:26:15
225
原创 数据结构复习第一章
100分,冲冲冲!算法必须具备5个方面:有穷性,确定性,可行性,输入,输出算法评价的4个方面:正确性,可读性,健壮性,高效性。衡量算法效率的两种方法:事前分析发和事后统计法。常见的时间复杂度按数量级递增排列依次为:常数阶<对数阶<线性阶<线性对数阶<平方阶<立方阶<k次方阶<指数阶。时间复杂度的计算去把PTA上面的作业题和配套的习题集做完就行。空间复杂度和时间复杂度的分析一样。重点掌握时间复杂度的分析。...
2021-11-30 21:34:11
218
原创 IP地址与MAC地址的作用和关系
IP地址与MAC地址的作用和关系IP和MAC两者之间分工明确,默契合作,完成通信过程。在数据通信时,IP地址专注于网络层,网络层设备(如路由器)根据IP地址,将数据包从一个网络传递转发到另外一个网络上;而MAC地址专注于数据链路层,数据链路层设备(如交换机)根据MAC地址,将一个数据帧从一个节点传送到相同链路的另一个节点上。IP和MAC地址这种映射关系由ARP(Address Resolution Protocol,地址解析协议)协议完成,ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送
2021-11-28 21:04:34
4233
原创 数据结构第八章
第八章插入排序:直接插入排序:void InsertSort(SqList &L){ for(int i =2;i<=L.length;i++) { if(L.r[i].key<L.r[i-1].key) { L.r[0]=L.r[i]; L.r[i]=L.r[i-1]; for(int j =i-2;L.r[j]>L.r[0];j--)
2021-11-27 22:01:31
206
原创 算法的五个重要特性和4个基本标准
算法的五个重要特性和4个基本标准一个算法必须满足5大特性:1、有穷性:一个算法必须执行有穷步后结束、2、确定性:对于每种情况下所应执行的操作,在算法中都应该有确切的规定,不会产生二义性,使得算法的执行者和阅读者都能明确其含义以及如何执行。3、可行性:算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现4、输入:一个算法应该有0个、一个或多个输入。5、输出:一个算法应该有一个或多个输出。评价算法的优劣应该从以下几个方面:1、正确性:你的算法一定是正确的。2、可读性:你的算法一定易
2021-11-27 21:14:53
30571
原创 7-9 公路村村通
现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。输入样例:6 151 2 51 3 31 4 71 5 4
2021-11-21 18:28:51
197
原创 7-3 畅通工程之最低成本建设问题
#include<iostream>using namespace std;#define MAX 99999 int n,m;typedef struct { int dian ,bian; int map[1004][1004]; int dianji[MAX];}AMGraph;void InitAMGraph(AMGraph &G){ int v1,v2 ,w; for(int i=1;i<=n;i++) {
2021-11-10 20:16:33
378
原创 7-2 天梯地图
7-2 天梯地图题目描述:本题要求你实现一个天梯赛专属在线地图,队员输入自己学校所在地和赛场地点后,该地图应该推荐两条路线:一条是最快到达路线;一条是最短距离的路线。题目保证对任意的查询请求,地图上都至少存在一条可达路线。输入格式:输入在第一行给出两个正整数N(2 ≤ N ≤ 500)和M,分别为地图中所有标记地点的个数和连接地点的道路条数。随后M行,每行按如下格式给出一条道路的信息:其中V1和V2是道路的两个端点的编号(从0到N-1);如果该道路是从V1到V2的单行线,则one-way为1,否
2021-11-09 15:21:39
461
原创 7-1 城市间紧急救援
7-1 城市间紧急救援题目描述:作为一个城市的应急救援队伍的负责人,你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候,你的任务是带领你的救援队尽快赶往事发地,同时,一路上召集尽可能多的救援队。输入格式:输入第一行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0 ~ (N−1);M是快速道路的条数;S是出发地的城市编号;D是目的地
2021-11-08 17:16:10
561
原创 const 成员函数的使用
Description Jackie开了一家水果店,店里昨日剩余m公斤葡萄(Grape),今天新进了n公斤,葡萄的属性是重量(weight)。葡萄的每公斤单价是price。请你编写程序计算葡萄的总重量和总价格。用C++编写Grape类来完成代码,调用格式见“Append Code”。Grape::weight()葡萄的重量。Grape::weight(double)修改葡萄的重量。Grape::value()葡萄的价格。Grape的构造根据题意设计。Input 先输入葡萄的
2021-06-13 11:33:44
214
原创 类型可变的类
Description定义一个Data类,至少包含1个int类型的数据成员、1个double类型的数据成员,定义其构造函数和析构函数,使得程序执行时,能产生样例所示的结果。Input输入2行,第1行是1个int类型的数据,第2行是1个double类型的数据。Output见样例。Sample Input1203.14Sample OutputA default object is created.An integer object 120 is created.A double obj
2021-06-13 11:07:25
168
原创 A: 回文素数
Description定义一个类SpecialPrime,只有一个静态成员函数bool judge(int value)用于判断value是否是一个回文素数。所谓回文素数是指一个数既是回文数又是素数。Input输入两个数m和n,0<m<n。Output区间[m,n]内的所有回文素数。Sample Input2 1000Sample Output235711101131151181191313353373383727757787797919
2021-06-13 09:41:51
167
原创 时间类的构造和输出
Description封装一个时间类Time,用于时间处理的相关功能,支持以下操作:Time::Time(int,int,int)构造方法:传递时分秒的三个参数构造对象。Time::showTime()方法:输出“hh:mm:ss”,不足两位的要前面补0。你设计一个时间类Time,使得main()函数能够正确运行。函数调用格式见append.cc。append.cc中已给出main()函数。Input输入的第一个整数n,表示有n组测试数据,每组3个整数:hh,mm,ss,分别表示时、分、秒
2021-06-12 21:49:41
309
原创 Test类
#include <iostream> #include <string>using namespace std; class Test { string name; public: Test() { name="NULL"; cout <<"Create an object with name NULL"<<endl; } Test(string name1) {.
2021-06-12 21:39:50
213
原创 动态的数组
Description输入N个浮点数,输出其中第m个~第n个数,满足m<n。你需要编写以下4个函数,完成这个程序:double* allocate(int n),在动态内存上分配n个元素的double型数组,并返回其首地址。void input(double* p, int n),向p中输入n个double型数值。void output(double* p, int n),把长度为n的数组p中符合条件的第m个~第n个元素输出,m和n从标准输入读取。void release(double*
2021-06-12 19:42:17
165
原创 字符串折叠
字符串折叠Description定义MyString类,包括:一个字符数组或字符指针,用于存储字符串内容。void input():读取一个不含空白符的字符串。void output():输出字符串。如果字符串不是回文串,则输出原串。如果是回文串,则仅输出前半部分。如:原串:abccba,则输出abc原串:abcdcba,则输出abcd原串:abcd,则输出abcdInput第一行是整数N>0,表示之后有N个测试用例。每个测试用例占一行,是一个不含空白符的字符串。每个串不超过10
2021-06-12 16:57:49
294
原创 2021-05-29
Problem B: 克隆人来了!Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 6382 Solved: 3518[Submit][Status]Description克隆技术飞速发展,克隆人已经成为现实了!!所以,现在由你来编写一个Person类,来模拟其中的克隆过程。这个类具有2个属性:name——姓名(char*类型),和age——年龄(int类型)。该类具有无参构造函数(人名为“no name”,年龄是0)、带参数构造函数、拷贝构造函数以
2021-05-29 20:34:50
82
原创 找出不是两个数组共有的元素
标题: 找出不是两个数组共有的元素给定两个整型数组,本题要求找出不是两者共有的元素。输入格式:输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。输出格式:在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。输入样例:10 3 -5 2 8 0 3 5 -15 9 10011 6 4 8 2 6 -5 9 0 100 8 1输出样例:3 5 -15 6
2021-05-15 09:58:23
150
原创 Problem I: 时间的交换(Append code)
Description用C语言自定义结构体类型time来表示时间,用来存储小时、分钟、秒三个量。编写函数get_time()、put_time()、time_swap()实现对时间的输入、输出和交换功能。请根据“append.c”文件内容定义类型并设计函数,使程序编译正确。 用C++语言定义Time类型,并实现函数time_swap(),请根据“append.cc”文件内容定义类型并设计函数,使程序编译正确。 函数的调用格式见“Append Code”。#include <stdi..
2021-04-20 19:09:48
541
原创 2021-04-16
打印菱形#include <stdio.h>#include <stdlib.h>#include<math.h>int main(){ int n; scanf("%d",&n); int x,y; for(x=-n+1; x<=n-1; x++) { for(y=-n+1; y<=n-1; y++) { if((abs(y)<=abs(x
2021-04-16 11:02:05
101
原创 2021-04-14
求一个n位的回文数#include <stdio.h>#include <stdlib.h>#include<math.h>int main(){// freopen("in.txt","r",stdin);// freopen("out.txt","w",stdout); int n; scanf("%d",&n); int i,j,m,k; int ar[n]; for(i=pow(10,n-1
2021-04-14 19:30:56
79
原创 Problem F: 帮小明算算数(II)
标题:Problem F: 帮小明算算数(II)不能使用分支语句#include<stdio.h>int main(){ int a,b; char c; scanf("%d %c %d =",&a,&c,&b); c=='+'?printf("%d %c %d = %d",a,c,b,a+b):printf("%d %c %d = %d",a,c,b,a-b);}...
2021-04-09 20:20:24
432
原创 Problem C: 整型数据的输出格式
Problem C: 整型数据的输出格式#include <stdio.h>#include <stdlib.h>int main(){ int a,b; scanf("%d %d",&a,&b); printf("Octal Decimal Hexadecimal\n"); printf("%-6o%-8d%-11x\n",a,a,a); printf("%-6o%-8d%-11x\n",b,b,b); ret
2021-04-09 19:51:13
1081
原创 2021-03-28
标题:十进制转二进制在这里插入代码片#include<stdio.h>#define max 100000int main(){ int n,a[max]; while(scanf("%d",&n)!=EOF) { int c=1,b,i=0; do { c=n%2; n=n/2; i++; a[i]=c; } whi
2021-03-28 15:48:56
89
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人