算法
文章平均质量分 79
WF19980719
这个作者很懒,什么都没留下…
展开
-
CCF2020.06第一二题总结
#include <iostream>using namespace std;int n, m;//出现的问题:输入的时候p1n++重复;//while (scanf_s("%d %d %d", &q0, &q1, &q2) != EOF)没有深刻了解这个原理struct point{ int x; int y; char t; //默认构造函数初始化 point (int x_,int y_,char t_):x(x_),y(y_),t(t_){}原创 2020-08-17 22:05:55 · 446 阅读 · 0 评论 -
大数运算
1:大整数加法#include <iostream>#include <string.h>//用memset的头文件#include <string>//用string的头文件;oj上好像不加这个也行//c++的输入输出//https://blog.csdn.net/qq_40725780/article/details/81032700using namespace std;#define MAX 200 unsigned int num[MAX原创 2020-07-17 07:38:17 · 148 阅读 · 0 评论 -
poj:子串题解
// 子串.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。////要求:一组字符串,找到最长的字符串,要么是其子串、要么是其反序之后是所有字符串的子串//解决:1:找到最短的字符串,然后从各字符串从长到短进行判断//2:熟练掌握strlen/strncpy(复制n个字符串的子串)/strcpy(复制字符串)/strstr(在字符串中寻找字符子串)/strrev(对字符串进行反序)http://bailian.openjudge.cn/practice/2744/#inc原创 2020-07-14 11:27:00 · 184 阅读 · 0 评论 -
进制转换
//进制转换:对于p进制数,如果转化成q进制,需要两步://1:先转为10进制模板:int y = 0, product = 1;while (x != 0) { y = y + (x % 10)*product;//获得其个位数 x /= 10; product *= p;//p为进制}//1.1:如果输入时用字符型数组进行存储:int change(char *x, int b) {//b表示进制 int sum = 0; int len = strlen(x); for (i原创 2020-07-14 09:23:03 · 180 阅读 · 0 评论 -
电话号码字符串的总结
1. 487-3279总结: 1.1.char s[80];//要对每个字符操作,最好用字符数组表示字符串//把输入的字符数组标准化:使用两个指针进行扫描j扫描输入的,k保存标准d//对n进行标准化 1.2:char map[] = "22233344455566677778889999";//利用简单的结构体从字母到数字的映射关系 1.3:tow points(类似于归并排序) 思想:一个指针指向自己,另一个指向另外 void standard(int n){ //常见的两个指针扫..原创 2020-07-11 23:30:24 · 606 阅读 · 0 评论 -
校门外的树离散化处理
//离散化处理区间并https://blog.csdn.net/COFACTOR/article/details///类似的想法:https://blog.csdn.net/weixin_30614587/article/details/96665144//先对地区间进行排序:然后进行区间合并#include<iostream>#include<algorithm>using namespace std;struct dot { int pos; //记录这个点原创 2020-07-11 22:02:10 · 201 阅读 · 0 评论 -
对二维数组的排序
//1:对二维char数组排序//解决办法有:https://blog.csdn.net/hellotomhaha/article/details/60872218?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMach原创 2020-07-10 00:33:31 · 283 阅读 · 0 评论 -
算法笔记——最短路径问题:Dijkstra算法/BF和SPFA/Floyd
//=============算法思路====================//1:邻接矩阵:一般不超过1000,无向边和有向边的区别//2:邻接表(用链表),无向边和有向边的区别//2.1:为了简便,vector(变长数组)//3:Dijkstra算法//3.1:Di伪代码//G为图,一般设为全局变量;数据d为源点到各点的最短路径长度,s为起点//D(G,D[],S)//{//初始化//for(循环n次)//{// u为D[u]中最小的还未被访问的顶点的标号;//原创 2020-06-24 11:31:22 · 446 阅读 · 0 评论 -
排序
直接插入排序(类似于打牌)1.1:解决的关键问题:1.1.1:构造初始有序序列1.1.2:查找待插入记录的插入位置void InsertSort(int a[], int n) { //i从2开始,i默认1位有序,就此分为有序区和无序区 for (int i = 2; i <= n; i++) { a[0] = a[i];//设置哨兵好处:1:保存a[i]的值,避免移动过程中被覆盖 //2:充当哨兵,做循环的条件 int j.原创 2020-06-14 22:29:11 · 229 阅读 · 0 评论 -
CCF2019-12-1报数的简单模拟和STL中String实现错误总结
//错误总结:数组越界:单纯的想到7%4=3,但是数组下标是2,就直接减一,没想到是num%4有可能等于0,那就越界,正确的思路是在原来的数值基础上加一//Run-Time Check Failure #2 – Stack around the variable 'a' was corrupted.//出现此种错误就是数组越界#include <iostream>using namespace std;//判断是否为7的倍数或者包含7bool valid(int number1) {原创 2020-06-07 07:48:30 · 192 阅读 · 0 评论 -
【PAT A1020】Tree Traversals、树的存储以及数的遍历
//9.1.3二叉树的存储结构与基本操作//1:二叉树的存储结构#include <iostream>#include <queue>#include<cstdio>using namespace std;//================基本知识回顾=======================//1.1:二叉树的存储结构struct node { int data;//数据域 node* lchild; node* rchi原创 2020-06-02 16:30:32 · 147 阅读 · 0 评论 -
【PAT A1030】Travel Plan——Dijkstra+DFS和Dijkstra算法复盘总结
1:Dijkstra+DFS//错误总结//1:不需要记录最小花费,这里就是和之前的DJ的区别所在,后面专门计算最小花费//2:d[u]要进行更新//3:temp.pop_back();//不需要传参数进去//4:已知tempPath,不知道怎么求花费(找到相邻的下标进行操作)//5:用cin输入的时候:不要写成书上那种简便写法://5:scanf("%d%d",&v,&n);直接用v,n作为下标进行操作,好像是不行,要进行初始化,并且还输入不进去#include <i原创 2020-06-02 07:10:13 · 258 阅读 · 0 评论 -
STL——set的常见用法
//1:set的用法:自动内部有序且不含重复元素//1.1:加上头文件//1.2:只能通过迭代器进行访问,set<int>::iterator //1.3:结束时只能写it!=a.end(),不要写成it<a.end();#include <iostream>#include<set>using namespace std;int main(){ set<int>a; a.insert(3); a.insert(原创 2020-06-02 06:46:07 · 211 阅读 · 0 评论 -
[PAT A1003]Emergency:邻接表复习总结
// [PAT A1003]Emergency.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//思路:使用Dj算法,判断的时候用第二权值并其保存数量//挑战用了一下邻接表:出现了以下问题://1:fill和memset使用不熟练//1.1:头文件:include<algorithm>;include<cstring>范围:fill用来填充任何数,memset用来填充字符,0、-1//1.2:fill填充数组为(d,d+MAAV,INF),若为二维原创 2020-06-02 06:31:44 · 288 阅读 · 0 评论 -
算法笔记——图的存储
1:邻接矩阵:一般不超过10002:邻接表(用链表):为了简便,vector(变长数组)2.1:存放节点:涉及节点的初始化struct node { int v;//变得终点号 int w;//边权 //定义无参构造函数 node(){} //构造函数简化成一行 node(int _v, int _w) :v(_v), w(_w) {}};...原创 2020-06-02 06:02:11 · 189 阅读 · 0 评论 -
插入排序
//错误总结://1:数组越界//2:处理完循环后,j忘记处理//3:i只是代表下标,移动的过程中会不断发生变化,所以要用变量进行保存#include <iostream>#include<cstdio>using namespace std;//下标从0开始来一遍void insert_sort1(int a[], int n){ for (int p = 1; p< n; p++) { int temp= a[p],i..原创 2020-05-27 21:32:18 · 140 阅读 · 0 评论