自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 类型转换:(static_cast,dynamic_cast,const_cast,reinterpret_cast)

#include<iostream>using namespace std;class Buliding {};class Person {};class Student :public Person {};//函数指针typedef void (*FUNC)(int, int);typedef void(*FUNC1)(int, char*);void test01(){//reinterpret_cast强制类型转换,无关类型转换,函数指针转换都可

2022-04-30 20:11:26 182

原创 random_shuffle与merge,reverse:

random_shuffle 指定范围内的元素随机调整次序- `random_shuffle(iterator beg, iterator end); ` // 指定范围内的元素随机调整次序 // beg 开始迭代器 // end 结束迭代器#include <algorithm>#include <vector>#include <ctime>class myPrint{public: void operat...

2022-04-24 09:15:20 138

原创 STL的特殊方法:

find_if**功能描述:*** 按条件查找元素**函数原型:**- `find_if(iterator beg, iterator end, _Pred); ` // 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置 // beg 开始迭代器 // end 结束迭代器 // _Pred 函数或者谓词(返回bool类型的仿函数)#include <algorithm>#include <vector>#include ...

2022-04-18 08:09:57 114

原创 动态规划之背包问题:

采药(背包问题):题目描述辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一个到处都是草药的山洞里对他说:“孩子,这个山洞里有一些不同的草药,采每一株都需要一些时间,每一株也有它自身的价值。我会给你一段时间,在这段时间里,你可以采到一些草药。如果你是一个聪明的孩子,你应该可以让采到的草药的总价值最大。”如果你是辰辰,你能完成这个任务吗?输入格式第一行有22个整数TT(1 \le T \...

2022-04-04 07:56:53 100

原创 阶乘之和:

题目描述用高精度计算出S = 1! + 2! + 3! + \cdots + n!S=1!+2!+3!+⋯+n!(n≤50)。其中“!”表示阶乘,例如:5! = 5 \times 4 \times 3 \times 2 \times 15!=5×4×3×2×1。输入格式一个正整数n。输出格式一个正整数S,表示计算结果。输入输出样例输入 #1复制3输出 #1复制9说明/提示【数据范围】对于100 \%100%的数据,1 \le n \le 50...

2022-03-26 20:33:25 963

原创 题目 1177: 三角形

题目 1177: 三角形时间限制: 1Sec 内存限制: 128MB 提交: 3331 解决: 1396题目描述73 88 1 02 7 4 44 5 2 6 5(图一)图一表示一个5行的数字三角形。假设给定一个n行数字三角形,计算出从三角形顶至底的一条路径,使该路径经过的数字总和最大。每一步只能由当前位置向左下或右下。输入你的程序要能接受标准输入。第一行包含一个整数T,表示总的测试次数。对于每一种情况:第一行包含一个整数N,其中1 < N <...

2022-03-19 09:20:26 245

原创 高精度计算:

加法:#include"iostream"#include"vector"#include<string.h>#include"algorithm"usingnamespacestd;inta[500], b[500];intmain(){ strings1, s2; cin>> s1 >> s2; vector<int>c; memset(a, 0, sizeof(a)); memset(b, 0,...

2022-03-13 11:07:25 71

原创 题目 1117: K-进制数

考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0.考虑包含N位数字的K-进制数. 定义一个数有效, 如果其K-进制表示不包含两连续的0.例:1010230 是有效的7位数1000198 无效0001235 不是7位数, 而是4位数.给定两个数N和K, 要求计算包含N位数字的有效K-进制数的总数.假设2 <= K <= 10; 2 <= N; 4 <= N+K <= 18.#include<iostream>

2022-03-07 06:58:12 77

原创 Vasya and Golden Ticket:

暴力解决用所有可能的值试一遍:#include "iostream"#include "algorithm"using namespace std;int main(){int n;cin>>n;char array[n+1];getchar(); gets(array); int b[n]; int num=0,t=0; for (int i = 0; i < n; ++i) { ...

2021-12-05 14:49:26 65

原创 P1464 Function:

题目描述对于一个递归函数w(a,b,c)w(a,b,c)如果a \le 0a≤0orb \le 0b≤0orc \le 0c≤0就返回值11. 如果a>20a>20orb>20b>20orc>20c>20就返回w(20,20,20)w(20,20,20) 如果a<ba<b并且b<cb<c就返回w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c)w(a,b,c−1)+w(a,b−1,c−1)−w(a,b−...

2021-12-05 14:43:42 52

原创 map容器的用法:

#include "iostream"#include "map"//map和multimap的头文件using namespace std;void test01(){ map<int,int>m; //插入方式 m.insert(pair<int,int>(1,10)); m.insert(make_pair(2,20)); m.insert(map<int,int>::value_t...

2021-11-28 15:55:25 126

原创 删除或替换字符串中的元素:

#include "iostream"#include "string"#include "regex"#include "algorithm"using namespace std;int main(){ string s; getline(cin,s); s.erase(remove(s.begin(),s.end(),'\n'),s.end()); //删除“\n”元素 s.erase(remove(s.begin(),s.end(),'...

2021-11-28 15:53:06 601

原创 【无标题】埃式筛方法:

#include "iostream"#include<vector>using namespace std;int main(){int n;cin>>n;int num=0; bool isprime[n+1]; for(int i=0;i<=n;i++)isprime[i]=true;//先全部置为真 isprime[0]=isprime[1]=false;//1 0 不是素数 for(int i=2...

2021-11-21 19:17:55 471

原创 树与二叉树:

2021-11-21 19:14:23 197

原创 2021-11-14链表的排序

#include <iostream>#include "algorithm"#include "list"using namespace std;/* 创建一个单链表 */struct Node{ int data; Node *next;};void creatList(Node *head,int arr[],int n){ Node *p=head; for (int i = 0; i < n; ++i) {...

2021-11-14 14:23:15 369

原创 单向链表:

#include <iostream>using namespace std;/* 创建一个单链表 */struct Node{ int data; Node *next;};void creatateList(Node *head,int arr[],int n){ Node *p=head; for(int i=0;i<n;i++){ Node *pnewNode=new Node; pnewNode->d...

2021-11-12 08:42:14 362

原创 离散化方法:

1.把原数组复制到辅助数组,并进行排序。2.对排好的数组进行去重。3.利用二分法对数组中的数据查找确定原数组数据的次序。#include "iostream"#include "algorithm"using namespace std;int Remove(int arr[],int n) { //对排好的数组进行去重。 int b[n], t = 1; b[0] = arr[0]; for (int i = 1; i < n; ...

2021-11-06 18:06:14 121

原创 2021-11-06区间合并方法:

1.使用vector容器定义类似二维数组2.使用vector容器的的特性对其排序3.比较相邻区间是否有重叠并合并#include "iostream"#include "vector"#include "algorithm"using namespace std;int main(){ int n,t=0; cin>>n; vector<vector<int>>v(n); //使用vector容器定义类...

2021-11-06 17:46:03 61

原创 容器vector的用法:

#include<iostream>#include<vector>#include<algorithm> //调用for_each的头文件#include<string>using namespace std;int main(){ int n; cin>>n;// void test01(int n);// test01(n);// void test02(int n);// test...

2021-10-19 17:05:21 75

原创 快速排序方法:

#include<iostream>#include<stdlib.h>#include<time.h>using namespace std;int main(){ srand((unsigned)time(NULL)); //为了产生随机数 int n; cin>>n; int a[n]; for(int i=0;i<n;i++) a[i]=(rand()%101); ...

2021-10-14 20:12:14 59

原创 归并排序方法:

基本思想归并排序的主要思想是分治法。主要过程是:将n个元素从中间切开,分成两部分。(左边可能比右边多1个数) 将步骤1分成的两部分,再分别进行递归分解。直到所有部分的元素个数都为1。 从最底层开始逐步合并两个排好序的数列。具体的我们以一组无序数列{14,12,15,13,11,16}为例分解说明,如下图所示:上图中首先把一个未排序的序列从中间分割成2部分,再把2部分分成4部分,依次分割下去,直到分割成一个一个的数据,再把这些数据两两归并到一起,使之有序,不停的归并,最后成为一个排好序的

2021-10-14 10:16:18 57

原创 C++字符串的拼接与截取:

#include<iostream>#include<cstring>using namespace std;int main(){ string a="hello world"; string b="beautiful world"; string c=a+b;//字符串拼接直接用+号就可以 string a1=a.substr(4,3); //表示从下标4开始,3个字符 cout<<a1<<en...

2021-10-06 19:41:10 884

原创 希尔排序方法:

基本思想:先取一个小于n的整数d1作为第一个增量,把文件的全部记录分组。所有距离为d1的倍数的记录放在同一个组中。先在各组内进行直接插入排序;然后,取第二个增量d2<d1重复上述的分组和排序,直至所取的增量dt=1(dt<dt-1…<d2<d1),即所有记录放在同一组中进行直接插入排序为止。 在使用增量dk的一趟排序之后,对于每一个i,我们都有a[i]<=a[i+dk],即所有相隔dk的元素都被排序。 如图:增量序列为5,3,1,每一趟排序之后,相隔对应增量的元素都被排序了

2021-10-03 09:06:16 1451

原创 插入排序的方法:

插入排序 就是一种从序列左端开始依次对数据进行排序的算法。#include<iostream>using namespace std;int main(){ int n; cin>>n; int a[n]; for(int i=0;i<n;i++) cin>>a[i]; for(int i=0;i<n;i++){ for(int j=i;j>0&&a[j...

2021-10-02 15:51:29 47

原创 映射:MAP

map就是从键(key)到值(value)的映射。因为重载了【】运算符,map像是数组的“高级版”。map是键值对,⽐如⼀个⼈名对应⼀个学号,就可以定义⼀个字符串string类型的⼈名为“键”,学号int类型为“值”,如map<string, int> m;当然键、值也可以是其它变量类型~map会⾃动将所有的键值对按照键从⼩到⼤排序,以下是map中常⽤的⽅法:#include <iostream>#include <map>#include <str..

2021-09-25 09:38:50 247

空空如也

空空如也

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

TA关注的人

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