自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 求图的连通分支

给定图,求图的连通分支数。输入每行两个整数i,j,表示节点i和j之间存在一条边。输出连通分支数#include<iostream>#include<vector>using namespace std;vector<int>graph[1000011];bool isvisit[1000011] = { 0 };bool has[1000011] = { 0 };vector<int>point;int cnt = 0;void vis

2021-06-26 23:14:20 2092 2

原创 7-1 最大子列和问题——动态规划

7-1 最大子列和问题输入格式:输入第1行给出正整数K (≤100000);第2行给出K个整数,其间以空格分隔。输出格式:在一行中输出最大子列和。如果序列中所有整数皆为负数,则输出0。输入样例:6-2 11 -4 13 -5 -2输出样例:20DP模板题解题的关键在于状态转移方程dp[i]=max{A[i],dp[i-1]+A[i]}其中dp[i]表示以i结尾的最大连续子列和,A[i]表示第i个元素。代码如下:#include<iostream>#include&

2021-05-22 09:51:06 236

原创 Caesar密码C++程序实现

包含加密和解密的两个过程#include<iostream>using namespace std;int main(){ int key,i; string plaintext, ciphertext; char cmd; cout << "Choose your command:" << endl; cout << "a) encryption, b) decode" << endl; cin >> cmd;

2021-01-21 19:08:20 507

原创 错题:找x

问题 A: 找x题目描述输入一个数n,然后输入n个数值各不相同,再输入一个值x,输出这个值在这个数组中的下标(从0开始,若不在数组中则输出-1)。输入测试数据有多组,输入n(1<=n<=200),接着输入n个数,然后输入x。输出对于每组输入,请输出结果。样例输入 Copy41 2 3 43样例输出 Copy2易错点本体考察二分算法。由于二分之前必须要对数组排序,但是排序会改变数组内元素原有的下标,所以必须使用结构体储存数组内原有元素的下标,然后再进行排序。解答#i

2020-08-14 19:53:35 194

原创 对c++的map和unordered_map的一些思考

易错点1:这是map的定义:map<key,value> mp;,其中key是映射的起点,可以为任何类型。value为映射的终点值。易错点2:当map的key是类或结构体时,需要定义重载operator <运算符。因为map内部是自动有序的,当key为结构体时,我们需要为其制定排序方法,即重载operator <运算符。如,对于以下结构体,可以制定如下的重载operator <运算符函数:struct info{ int num; int loc; bool

2020-08-03 21:40:28 274

原创 关于getline的使用

getline的使用方法:使用时需要包含string头文件,直接用getline(cin,str);的形式使用。这里的str必须为c++的string类型。getline的作用:通过getline(cin,str);,可以读取一行内容到str字符串中,而且不会读取换行符。主要用于读取字符串时为单行读取,且需要读取空格的情况。getline的返回值:getline(cin,str);的返回值为cin的值,也就是说,当成功读取时,getline返回true,读取失败时,返回false。因此可以使用

2020-08-02 13:51:43 2476 1

原创 关于简单插入排序的思考

简单插入排序的思想:整体思想就是,从未排序的部分一次取元素,并把取好的元素插入到前面已排序部分的适当位置,直到所有元素都被插入到已排序部分中。(注:刚开始时,已排序部分只有一个元素(第一个元素))。简单插入排序的操作方法:从数组第二位开始到末尾取元素,与前面排好序的部分进行比对,比对时要从排好序部分的前面往后比较。找到插入位置后,用一个临时变量保存待插入的元素,然后从插入位置开始,把原排好序的数组整体移动一位(把插入位置空开)。最后把这个临时变量赋值给插入位置。简单插入排序的代码实现://以排序字

2020-08-02 13:41:29 133

原创 小数保留位时出现的问题

刷oj时遇到了问题:如果给-0.0001保留小数点至2位时,保留结果会变成-0.00,但这明显不是我们想要的结果。解决方法:int a=0.0001if(a+0.05>0 && a<0) printf("0.00");用这样的方法,可以吧-0.0001保留为0.00输出。...

2020-07-18 14:43:26 259

原创 关于max_element()和min_element的简易理解

这两个取最大最小值的函数都被包含在algorithm库中,均返回最大或最小值的指针。机理:以max_element为例,若有int a[5];则取最大值:max_element(a,a+5,cmp);有三个参数第一个参数为所求数组的首元素地址,第二个参数为所求数组的尾元素的下一个元素的地址。第三个元素在比较一般数组时可省略,默认的cmp为bool cmp (int a, int b){ return a < b;}即max_element和min_element的机理为,先按照所给

2020-07-12 09:05:11 1301

原创 C语言 第2章 用C语言编写程序 刷题笔记

1、八进制、十六进制的表示:(1)八进制:以0开头的数字(2)十六进制:以0x或0X开头的数字,十六进制的字母部分可以用A ~ F或a ~ f表示。2、常量的后缀:(1)整形后加l或L则为long int型。(2)整形常量后加u或U,则为unsigned型。(3)浮点型后加F或f则为float型。3、指数形式的常量:指数部分只能是整数,尾数不限,指数或位数均不能省略。e可以大写,可以小写。如:1e3=1X10^3-.1E-3=-0.1X10^-31e、E.5、E-3非法4、常量的默认

2020-06-18 15:47:33 546

原创 C语言 第1章 引言 刷题笔记

1、程序调试就是找出并改正C源程序中的语法错误。(x)解释:通过调试来修正语法错误和逻辑错误。2、高级语言的执行过程

2020-06-18 11:06:46 2639

原创 C语言刷题笔记1

C语言刷题笔记1数组循环右移的方法知识点记忆最近在刷C语言的题目,但是每次刷之后,感觉忘得很快。因此选择在这里记录一下我的刷题笔记~数组循环右移的方法基本思路:另外创建一个数组b[n],先写一个使数组a的元素右移一个单位的for循环(右移到数组b上),然后再在外侧加一个for循环,来决定右移几个单位。注意,每向右移动一个单位,必须将移动后的数组b重新赋给数组avoid ArrayShift( int a[], int n, int m ){//a是待移动的数组,n为数组元素的个数,m为移动单位

2020-05-20 22:03:05 306

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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