自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Running Snail

写代码是一种艺术,甚于蒙娜丽莎的微笑!不拼博,枉少年!

原创 实验4.2 实现客户机(CLIENT)类

题目实现客户机(CLIENT)类。定义字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中定义类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的成员变量取值的变化情况。AC的C++代码如下:类声明头文件 client.h //client.h #ifndef CLIENT_H #define CLIENT_H

2020-05-31 22:08:20 241

原创 实验4 C++程序的结构(4学时)

一、 实验目的观察程序运行中变量的作用域、生存期和可见性;学习类的静态成员的使用;学习多文件结构在C++程序中的使用;二、 实验任务运行下面的程序,观察变量x、y的值。//lab5_1.cpp#include <iostream.h>void fn1();int x = 1, y = 2;int main(){cout << “Begin…” << endl;cout << "x = " << x << e

2020-05-31 22:00:56 214

原创 实验3.3 设计一个用于人事管理的People(人员)类

题目(选做)设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。...

2020-05-31 21:59:49 1038

原创 实验3.2 定义一个简单的Computer类

题目定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类。AC的C++代码如下:#include <iostream> using namespace std; enum CPU_rank {P1=1,P2,P3,P4,P5,P6,P7}; class CPU { private:

2020-05-31 21:58:26 507

原创 实验3.1 定义一个CPU类,观察构造函数和析构函数的调用顺序

题目定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enum CPU_Rank {P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。AC的C++代码如下:#include<iostream>using namespace std;enum CPU_

2020-05-31 21:57:20 228

原创 实验3 类与对象

一、 实验目的掌握类的定义和使用。掌握类的定义和对象的声明。复习具有不同访问属性的成员的访问方式。观察构造函数和析构函数的执行过程。学习类的聚集使用方法。使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。二、 实验任务定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU_Rank,定义为enum CPU_Rank {P1=1,P

2020-05-31 21:54:58 139

原创 实验2.5 用递归的方法编写函数求Fibonacci 级数,观察递归调用的过程

题目用递归的方法编写函数求Fibonacci 级数,观察递归调用的过程AC的C++代码如下:#include<iostream>using namespace std;int fbn(int n){ if(n==1||n==2) return 1; else return fbn(n-1)+fbn(n-2);}int main(){ cout<<"请输入一个数:"; int n; cin>>n; int ans= fbn(n)

2020-05-31 21:53:02 339

原创 实验2.4 使用系统函数pow(x,y)计算xy的值

题目使用系统函数pow(x,y)计算xy的值,注意包含头文件math.hAC的C++代码如下:#include<iostream>#include<math.h> using namespace std;int main(){ double x,y; cout<<"Please enter x and y\n"; cin>>x>>y; cout<<"The answer is\n"; cout<<p

2020-05-31 21:51:04 253

原创 实验2.3 使用重载函数模板重新实现上小题中的函数Max1

题目使用重载函数模板重新可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值AC的C++代码如下:#include<iostream>#include<algorithm>using namespace std;template <class T>T Max1(T a,T b){ return max(a,b);}template <class T>T Max1(T a,T b,T c){ return max(max(

2020-05-31 21:47:44 259

原创 实验2.2编写重载函数Max1

题目编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。AC的C++代码如下:#include<iostream>#include<algorithm>using namespace std;int Max1(int a,int b){ return max(a,b);}int Max1(int a,int b,int c){ return max(max(a,b),c);}double Max1(double a,do

2020-05-31 21:45:39 160

原创 编写一个函数把华氏温度转换为摄氏温度

题目编写一个函数把华氏温度转换为摄氏温度,转换公式为:C = (F - 32) * 5/9AC的C++代码如下:#include<iostream>using namespace std;double Celsius(int f){ return 1.0*(f-32)*5/9;}int main(){ double f; cout<<"Please enter the fahrenheit\n"; cin>>f; cout<<"

2020-05-31 21:44:10 409

原创 实验2 函数的应用

实验2 函数的应用一、 实验目的掌握函数的定义和调用方法。练习重载函数的使用。练习函数模板的使用。练习使用系统函数。学习使用VC++的debug调试功能,使用step into追踪到函数内部。二、 实验任务编写一个函数把华氏温度转换为摄氏温度,转换公式为:C = (F - 32) * 5/9。编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。使用重载函数模板重新实现上小题中的函数Max1。使用系统函数pow(x,y)计算xy的值,注意包含头文件

2020-05-31 21:42:55 177

原创 相见恨晚的超实用网站,总有一个用得着

搞学习CSDN: https://www.csdn.net/TED(最优质的演讲):https://www.ted.com/谷粉学术: https://gfsoso.99lb.net/scholar.html大学资源网:http://www.dxzy163.com/简答题:http://www.jiandati.com/网易公开课:https://open.163.com/ted/网易云课堂:https://study.163.com/中国大学MOOC:www.icourse163.org.

2020-05-31 10:29:27 956

原创 人工智能、机器学习和深度学习的区别与认识
原力计划

人工智能的浪潮正在席卷全球,诸多词汇时刻萦绕在我们耳边:人工智能(Artificial Intelligence)、机器学习(Machine Learning)、深度学习(Deep Learning)。不少人对这些高频词汇的含义及其背后的关系总是似懂非懂、一知半解。为了帮助大家更好地理解人工智能,这篇文章用最简单的语言解释了这些词汇的含义,理清它们之间的关系,希望对刚入门的同行有所帮助。图一 人工智能的应用人工智能:从概念提出到走向繁荣1956年,几个计算机科学家相聚在达特茅斯会议...

2020-05-30 22:32:55 383

原创 子集和问题(回溯法)

题目描述给定一个含有n个元素的整形数组a,再给定一个和sum,求出数组中满足给定和的所有元素组合,举个例子,设有数组a[6] = { 1, 2, 3, 4, 5, 6 },sum = 10,则满足和为10的所有组合是{1, 2, 3, 4}{1, 3, 6}{1, 4, 5}{2, 3, 5}{4, 6}注意,这是个n选m的问题,并不是两两组合问题解法一:穷举法最直观的想法就是穷举,把数组中元素的所有组合情况都找出来,然后看看哪些组合满足给定的和即可,这种方法的计算量非常大,是指数级的,假

2020-05-26 15:12:20 358

原创 优秀子序列(【CCF】NOI Online能力测试3 提高组)

题目描述现在请你求出A的所有优秀子序列的价值之和,答案对10^9+7 取模。输入格式第一行一个正整数n表示序列长度。第二行n个用空格分隔的非负整数,表示 a1​,a2​,⋯,an​。输出格式仅一行一个整数,表示答案对10^9+7 取模的结果。输入样例41 2 2 3输出样例12样例解释符合条件的子序列有:∅,{1},{2},{2},{3},{1,2},{1,2},它们价值依次为1,1,2,2,2,2,2,总和为12数据规模与约定...

2020-05-24 19:08:00 503

原创 水壶(【CCF】NOI Online能力测试3 提高组)

题目描述有n个容量无穷大的水壶,它们从 1∼n编号,初始时i号水壶中装有Ai​单位的水。你可以进行不超过k次操作,每次操作需要选择一个满足 1≤x≤n−1的编号x,然后把x号水壶中的水全部倒入 x+1号水壶中。最后你可以任意选择恰好一个水壶,并喝掉水壶中所有的水。现在请你求出,你最多能喝到多少单位的水。输入格式第一行一个正整数n,表示水壶的个数。第二行一个非负整数k,表示操作次数上限。第三行n个非负整数,相邻两个数用空格隔开,表示水壶的初始装水量 ...

2020-05-24 18:59:30 595

原创 魔法值(【CCF】NOI Online能力测试3 提高组)

题目描述H 国的交通由n座城市与m条道路构成,城市与道路都从1开始编号,其中1号城市是 H 国的首都。H 国中一条道路将把两个不同城市直接相连,且任意两个城市间至多有一条道路。H 国是一个信奉魔法的国家,在第j天,i号城市的魔法值为 fi,j。H 国的魔法师已观测到第 0 天时所有城市的魔法值 fi,0​,且他们还发现,之后的每一天每个城市的魔法值,都将会变为所有与该城市直接相连的城市的前一天魔法值的异或值,即其中 j≥1,v1​,v2​,⋯,vk​是所有与x号城...

2020-05-24 18:56:08 359

原创 观星(【CCF】NOI Online能力测试3 入门组)

题目描述Jimmy 和 Symbol 约好一起看星星,浩瀚的星空可视为一个长为N、宽为M的矩阵,矩阵中共有 N×M个位置,一个位置可以用坐标(i,j)(1≤i≤N,1≤j≤M)来表示。每个位置上可能是空的,也可能有一个星星。对于一个位置(i,j),与其相邻的位置有左边、左上、上面、右上、右边、右下、下面、左下 8 个位置。相邻位置上的星星被视为同一个星座,这种关系有传递性,例如若 (1,1),(1,2),(1,3)三个 位置上都有星星,那么这三个星星视为同一个星座。包含的星星数量相同的...

2020-05-24 18:48:18 741

原创 最急救助(【CCF】NOI Online能力测试3 入门组)

题目描述救助中心每天都要收到很多求救信号。收到求救信号后,救助中心会分析求救信号,找出最紧急的求救者给予救助。求救信号是一个由小写英文字母组成的字符串,字符串中连续三个字符依次组成sos的情况越多(即包含子串sos的数目越多),代表着求救者情况越紧急。现在请你帮助救助中心找出最紧急的求救者。注意字符串中包含的sos可以有重叠,例如sosos算作包含22个sos。输入格式从标准输入读入数据。第一行一个整数n,表示求救者的数目。接下来有 2×n行,每行一个由小写英文字母组成的...

2020-05-24 18:43:22 1841

原创 买表(【CCF】NOI Online能力测试3 入门组)

题目描述Jimmy 到 Symbol 的手表店买手表,Jimmy 只带了nn种钱币,第ii种钱币的面额为 ki​元,张数为 ai​张。Symbol 的店里一共有m块手表,第i块手表的价格为 ti​元。Symbol 的手表店不能找零,所以 Jimmy 只能在凑出恰好的钱数时才能购买一块手表。现在对于店里的每块手表,Jimmy 想知道他能不能凑出恰好的钱数进行购买。输入格式第一行两个空格分隔的整数n和m表示钱币数与手表数。接下来nn行每行两个空格分隔的整数 ...

2020-05-24 18:39:01 2845 3

原创 test1 exam5定义一个可以精确表示年、月、日、小时、分、秒的结构体

定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来#include<iostream>using namespace std;struct TimeStruct{ int year; int month; int day; int hour; int min; int sec;};int main(){ TimeStruct Time; cout<&

2020-05-14 16:15:49 214

原创 test1 exam3编程计算图形的面积

程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积的值后将其显示出来。#include<iostream>using namespace std;//圆形面积double circle(int r){ return 3.14 * r * r;}//长方形面积int rectangle(int a, int b) { return a * b;}//

2020-05-14 16:13:05 107

原创 ~~朴素dijkstra算法 (搜索与图论)(附模板题AcWing 849. Dijkstra求最短路 I)

模板时间复杂是 O(n2+m), n表示点数,m 表示边数int g[N][N]; // 存储每条边int dist[N]; // 存储1号点到每个点的最短距离bool st[N]; // 存储每个点的最短路是否已经确定// 求1号点到n号点的最短路,如果不存在则返回-1int dijkstra(){ memset(dist, 0x3f, sizeof dist); dist[1] = 0; for (int i = 0; i < n - 1; i +

2020-05-10 19:24:31 130

原创 时间复杂度图

2020-05-10 16:45:19 103

原创 C++STL常用简洁版

vector, 变长数组,倍增的思想 size() 返回元素个数 empty() 返回是否为空 clear() 清空 front()/back() push_back()/pop_back() begin()/end() [] 支持比较运算,按字典序pair<int, int> first, 第一个元素 second, 第二个元素 支持比较运算,以first为第一关键字,以second为第二关键字(

2020-05-09 21:30:36 81

原创 ~~字符串哈希(数据结构)(附模板题AcWing 841 字符串哈希)

核心思想:将字符串看成P进制数,P的经验值是131或13331,取这两个值的冲突概率低。小技巧:取模的数用2^64,这样直接用unsigned long long存储,溢出的结果就是取模的结果。typedef unsigned long long ULL;ULL h[N], p[N]; // h[k]存储字符串前k个字母的哈希值, p[k]存储 P^k mod 2^64// 初始化p[0] = 1;for (int i = 1; i <= n; i ++ ){ h[i] =

2020-05-09 21:27:30 92

原创 ~~一般哈希(数据结构)(附模板题AcWing 840 模拟散列表)

(1) 拉链法int h[N], e[N], ne[N], idx;// 向哈希表中插入一个数void insert(int x){ int k = (x % N + N) % N; e[idx] = x; ne[idx] = h[k]; h[k] = idx ++ ;}// 在哈希表中查询某个数是否存在bool find(int x){ int k = (x % N + N) % N; for (int i = h[k]; i != -1

2020-05-09 18:31:27 87

原创 ~~堆(数据结构)(附模板题 AcWing 838. 堆排序)

模板// h[N]存储堆中的值, h[1]是堆顶,x的左儿子是2x, 右儿子是2x + 1// ph[k]存储第k个插入的点在堆中的位置// hp[k]存储堆中下标是k的点是第几个插入的int h[N], ph[N], hp[N], size;// 交换两个点,及其映射关系void heap_swap(int a, int b){ swap(ph[hp[a]],ph[hp[b]]); swap(hp[a], hp[b]); swap(h[a], h[b]);}v

2020-05-09 18:20:58 99

原创 ~~并查集模板(数据结构)(附题目AcWing 836. 合并集合)

(1)朴素并查集: int p[N]; //存储每个点的祖宗节点 // 返回x的祖宗节点 int find(int x) { if (p[x] != x) p[x] = find(p[x]); return p[x]; } // 初始化,假定节点编号是1~n for (int i = 1; i <= n; i ++ ) p[i] = i; // 合并a和b所在的两个集合: p[find(a)]

2020-05-09 18:14:56 76

原创 ~~Trie树(数据结构)(附题目:AcWing 835. Trie字符串统计)

模板int son[N][26], cnt[N], idx;// 0号点既是根节点,又是空节点// son[][]存储树中每个节点的子节点// cnt[]存储以每个节点结尾的单词数量// 插入一个字符串void insert(char *str){ int p = 0; for (int i = 0; str[i]; i ++ ) { int u = str[i] - 'a'; if (!son[p][u]) son[p][u] = +

2020-05-09 08:56:28 68

原创 ~~KMP(数据结构)

模板// s[]是长文本,p[]是模式串,n是s的长度,m是p的长度求模式串的Next数组:for (int i = 2, j = 0; i <= m; i ++ ){ while (j && p[i] != p[j + 1]) j = ne[j]; if (p[i] == p[j + 1]) j ++ ; ne[i] = j;}// 匹配for (int i = 1, j = 0; i <= n; i ++ ){ while (

2020-05-09 08:52:26 74

原创 ~~单调队列(数据结构)(附题目)

模板常见模型:找出滑动窗口中的最大值/最小值int hh = 0, tt = -1;for (int i = 0; i < n; i ++ ){ while (hh <= tt && check_out(q[hh])) hh ++ ; // 判断队头是否滑出窗口 while (hh <= tt && check(q[tt], i)) tt -- ; q[ ++ tt] = i;}题目举例给定一个大小为n≤106的数组

2020-05-09 08:50:33 266

原创 ~~单调栈(数据结构)

模板常见模型:找出每个数左边离它最近的比它大/小的数int tt = 0;for (int i = 1; i <= n; i ++ ){ while (tt && check(stk[tt], i)) tt -- ; stk[ ++ tt] = i;}

2020-05-09 08:46:49 113

原创 ~~队列(数据结构)(附模板题 AcWing 829. 模拟队列)

1. 普通队列:// hh 表示队头,tt表示队尾int q[N], hh = 0, tt = -1;// 向队尾插入一个数q[ ++ tt] = x;// 从队头弹出一个数hh ++ ;// 队头的值q[hh];// 判断队列是否为空if (hh <= tt){}2.循环队列// hh 表示队头,tt表示队尾的后一个位置int q[N], hh = 0, tt = 0;// 向队尾插入一个数q[tt ++ ] = x;if (tt == N) tt

2020-05-09 08:45:51 99

原创 ~~栈(数据结构)

模板// tt表示栈顶int stk[N], tt = 0;// 向栈顶插入一个数stk[ ++ tt] = x;// 从栈顶弹出一个数tt -- ;// 栈顶的值stk[tt];// 判断栈是否为空if (tt > 0){}

2020-05-09 08:44:32 70

提示
确定要删除当前文章?
取消 删除