
C/c++
人行花坞
什么事都跟你说的明明白白你就很难成长。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
图论中的宽度优先搜索如何按给定层数进行?
图论中的宽度优先搜索如何按给定层数进行?06-图3 六度空间 (30 分)代码:#include<iostream>#include<cstring>using namespace std;const int N = 10100,M = 33*N;int n,m;int e[M],ne[M],idx,h[N];bool st[N];void add(int a,int b){ e[idx] = b; ne[idx] = h[a]; h原创 2021-05-15 16:29:06 · 227 阅读 · 0 评论 -
06-图1 列出连通集 (25 分)
06-图1 列出连通集 (25 分)06-图1 列出连通集 (25 分)深度优先搜索+宽度优先搜索给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数N(0<N≤10)和E,分别是图的顶点数和边数。随后E行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:按照"{ v1 v2 … v原创 2021-04-19 17:15:00 · 175 阅读 · 0 评论 -
05-树8 File Transfer
05-树8 File Transfer并查集的简单应用We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a file from any computer on the network to any oth原创 2021-04-14 15:48:25 · 110 阅读 · 0 评论 -
题解:区间合并
题解:区间合并acwing:区间合并区间合并解题思路: 首先读入所有的区间,然后将区间的左端点从小到大排序,遍历每个区间并且维护一个当前区间,此时会出现两种情况,第一种是遍历到的区间与当前区间完全没有交集,这意味着我们发现了一个新区间,所以此时把旧的区间保存,并将当前区间更新为这个新发现的区间;第二种情况是有交集,此时只需要更新当前维护的区间的右端点,让其变为二者中较大的一个(被遍历到的区间可能会完全在所维护区间的内部)。cpp:#include<iostream>#inc原创 2020-09-23 09:45:20 · 114 阅读 · 0 评论 -
题解:区间和
题解:区间和acwing802:区间和802.区间和假定有一个无限长的数轴,数轴上每个坐标上的数都是 0现在,我们首先进行 n 次操作,每次操作将某一位置 × 上的数加 c。近下来,进行 m 次询问,每个询问包含两个整数和,你需要求出在区间[l,r]之间的所有数的和。输入格式第一行包含两个整数 n 和 m。接下来 n 行,每行包含两个整数 x 和 c。再接下里 m 行,每行包含两个整数和 r.输出格式共 m 行,每行输出一个询问中所求的区间内数字和。离散化解题思路: 这道原创 2020-09-23 09:13:55 · 437 阅读 · 0 评论 -
题解:最长连续不重复子序列
题解:最长连续不重复子序列[原题链接][https://www.acwing.com/activity/content/11/]双指针算法解题思路: 新建一个数组,以每个已知数组的元素大小作为新数组的下标,用来统计每个数字出现的次数,i遍历整个数组,j表示在区间无重复数字的情况下,j向左最远能到达的位置,同时检测这个元素出现的次数,如果这个元素出现的次数大于一,代表当前区间已经有重复数字,需要调整j,使其向右移动,并不断将j途径的元素的记录的数量减一,知道区间无重复数字,同时还要维护一个变量原创 2020-09-23 08:36:53 · 379 阅读 · 0 评论 -
算法:前缀和与差分
算法:前缀和与差分一维前缀和a[N]为一数组,若存在s[N], 使得s[i]=a[1]+a[2]+a[3]+…+a[i], 则称s[N]为a[N]的前缀和数组。前缀和用来求一个数组内给定区间所有元素的和,将其时间复杂度降为O(1).#include <iostream>using namespace std;const int N = 100010;int n, m;int a[N], s[N];int main(){ //ios::sync_with_stdi原创 2020-09-20 07:42:41 · 177 阅读 · 0 评论 -
c++:函数
函数函数基础局部对象在 C++语言中,名字有作用域,对象有生命周期(lifetime), 理解这两个概念非常重要。名字的作用域是程序文本的一部分,名字在其中可见。对象的生命周期是程序执行过程中该对象存在的一段时间。自动对象局部静态对象函数声明分离式编译C++语言支持所谓的分离式编译 (separate compilation)。分离式编译允许我们把程序分割到几个文件中去,每个文件独 立编译。编译和链接多个源文件参数传递每次调用函数时都会重新创建它的形参,并用传入的实参对形参原创 2020-05-22 13:50:17 · 376 阅读 · 0 评论 -
C语言:位操作
位操作运算符:~、&、|、、>>、<<、&=、|=、=、>>=、<<=二进制、十进制、十六进制位运算符位字段_Alignas _Alignof二进制、位和字节计算机适用基底为2的数制系统。它用2的幂而不是10的幂。以2为基 底表示的数字被称为二进制数(binary number)。二进制中的2和十进制中 的10作用相同。例如,二进制数1101可表示为:1×2^3 + 1×2^2+ 0×2^1+ 1×2^0以十进制数表示为:1原创 2020-05-13 16:23:22 · 693 阅读 · 0 评论 -
C语言:结构和其他数据形式
结构和其他数据形式sturct union typedef. ->C结构联合和指向函数的指针结构体实例:创建图书目录//* book.c -- 一本书的图书目录 */#include <stdio.h>#include <string.h>char *s_gets(char *st, int n);#define MAXTITL 41 /* 书名的最大长度 + 1 */#define MAXAUTL 31 /* 作者姓名的最大长度 + 1*/st原创 2020-05-12 15:35:02 · 547 阅读 · 0 评论 -
C语言:文件输入输出
文件输入、输出函数:fopen()、getc()、putc()、exit()、fclose()fprintf()、fscanf()、fgets()、fputs()rewind()、fseek()、ftell()、fflush()fgetpos()、fsetpos()、feof()、ferror()ungetc()、setvbuf()、fread()、fwrite()如何使用C标准I/O系列的函数处理文件文件模式和二进制模式、文本和二进制格式、缓冲和无缓冲I/O使用既可以顺序访问文件也可以随原创 2020-05-10 19:01:40 · 816 阅读 · 0 评论 -
C语言:存储类别,链接和内存管理
存储类别,链接和内存管理关键字:auto、extern、static、register、const、volatile、restricted、 _Thread_local、_Atomic函数:rand()、srand()、time()、malloc()、calloc()、free()如何确定变量的作用域(可见的范围)和生命期(它存在多长时间)设计更复杂的程序存储类别从硬件方面来 看,被储存的每个值都占用一定的物理内存,C 语言把这样的一块内存称为 对象(object)。对象可以储存一个或多个原创 2020-05-09 16:14:49 · 420 阅读 · 0 评论 -
C语言:字符串和字符串函数
字符串和字符串函数函数:gets()、gets_s()、fgets()、puts()、fputs()、strcat()、strncat()、 strcmp()、strncmp()、strcpy()、strncpy()、sprintf()、strchr()创建并使用字符串使用C库中的字符和字符串函数,并创建自定义的字符串函数使用命令行参数表示字符串和字符串IO字符串是以空字符(\0...原创 2020-05-08 14:13:37 · 1093 阅读 · 1 评论 -
C语言:数组和指针
数组和指针const 指针 数组数组初始化int powers[8] = {1,2,4,6,8,16,32,64}; /* 从ANSI C开始支持这种初始化 */使用const声明数组有时需要把数组设置为只读。这样,程序只能从数组中检索值,不能把 新值写入数组。要创建只读数组,应该用const声明和初始化数组。因此,初始化数组应改成:const int days[MONTHS...原创 2020-05-02 19:36:05 · 487 阅读 · 0 评论