随笔分类 - C++
摘要:A本来想改到q<1e5,让你们预处理的,然后想了哈作为个逆元模板题吧= =,做不出来自行反思。 B贴个题面 因为只有一次机会,那么也就是两点分布期望E = p了,先说说大家的做法,先求出每个n的逆元保存,然后因为最大只会取到1e6,所以对0-1e6跑一遍每个数的倍数个数。复杂度O(N1/3),代码如
阅读全文
摘要:来刷kuangbin字符串了,字符串处理在ACM中是很重要的,一般比赛都会都1——2道有关字符串处理的题目,而且不会很难的那种,大多数时候都是用到一些KMP的性质或者找规律。 点击标题可跳转至VJ比赛题目链接。 A - Number Sequence 题意就是让你去找在串A找串B首次出现的位置,现在
阅读全文
摘要:前面的博客已经讲解了nth_element寻找区间第K大的用法,现在我们来说说这两个找区间最值的用法。两个函数都包含在algorithm库中。 一、函数原型 max_element min_element 1.参数 first,end——区间范围 comp——自定义比较函数 顾名思义,max_ele
阅读全文
摘要:这两个函数都包含在algorithm库中。STL提供了两个用来计算排列组合关系的算法,分别是next_permutation和prev_permutation。 一、函数原型 首先我们来看看这两个函数的函数原型: next_permutation: prev_permutation: 1.参数 fi
阅读全文
摘要:又重头开始刷kuangbin,有些题用了和以前不一样的思路解决。全部题解如下 点击每道题的标题即可跳转至VJ题目页面。 A-棋盘问题 棋子不能摆在相同行和相同列,所以我们可以依此枚举每一行,然后标记每一列是否走过,在此基础上进行DFS即可。 代码如下: B-Dungeon Master 题意就是给你
阅读全文
摘要:这是一个关于VSCode编辑器的各种配置。 你可以在这里找到VSCode 的各种操作,如果这里找不到,请移步官方文档C++ programming with Visual Studio Code以及各个插件的帮助文档中找到。 Visual Studio Code 安装以及C/C++运行环境搭建 Vi
阅读全文
摘要:我会把一些常见问题以及自己编写代码过程中遇到的问题以及解决方案放在这里,各位若是遇到的问题也可以在评论区留言。 一、头文件Error 不会影响编译运行,但会报Warm,如下图 解决方案是安装Include Autocomplete扩展。 二、编码错误 VS Code输出会出现乱码,很多人都遇到过。这
阅读全文
摘要:众所周知VSCode是全宇宙最好用的编辑器 (雾 配置了很久,今日终于配置完成了,还是有点麻烦的,本文是为了方便一些不懂怎么配置的小白,以及还有一些美化教程。 一、安装 Visual Studio Code是一款免费而且强大的编辑器,你可以直接在官方进行下载,本文是针对Windows系统进行安装使用
阅读全文
摘要:找大数模板的时候发现大部分模板功能不全,或者代码过于冗长,或者函数实现复杂度较高。 于是在现有模板的基础上整理以及优化,写出了下面的大数模板。 一、基本功能 支持int,long long,string和C字符串拷贝构造。 支持常规四则运算和求模运算,但不支持大数相除以及大数求模。 重载了流,支持c
阅读全文
摘要:数据结构和算法专栏,我会什么写什么 = = 不定时更新 一、数据结构 树状数组详解 线段树详解 二、算法 KMP算法 三、板子 我的代码模板 大整数模板 四、题解报告
阅读全文
摘要:先来看几个问题吧。 1.什么是树状数组? 顾名思义,就是用数组来模拟树形结构呗。那么衍生出一个问题,为什么不直接建树?答案是没必要,因为树状数组能处理的问题就没必要建树。和Trie树的构造方式有类似之处。 2.树状数组可以解决什么问题 可以解决大部分基于区间上的更新以及求和问题。 3.树状数组和线段
阅读全文
摘要:上次说了C++11的部分新特性,这里我们来说说新增的容器。 unordered_map unordered_set unordered_multimap unordered_multiset array forward_list tuple 一、std::array array array就是数组,
阅读全文
摘要:初识C++的时候,觉得会个STL就差不多了,后来发现了C++11这个东西,以及C++14,C++17QAQ,看了一下,好高深不学,emmmm真香= = 这里就只讲一下对ACM写代码有很高帮助的部分特性,因为大部分OJ和比赛只支持11,所以14和17就不讲了,然后还有C++11增加的元组tuple和几
阅读全文
摘要:终于又来写博客了 == bitset存储的是二进数位,就和一个bool性数组差不多。用法上和数组的操作方式也差不多。 每位只占一个字节,大大优化了空间,可以通过数组形式访问。 bitset定义 可以用以下几种方式定义bitset,值得注意的是,bitset在定义的时候必须定义大小,这里8便是我们定义
阅读全文
摘要:题目链接:http://120.78.128.11/Problem.jsp?pid=3445 最开始的思路就是直接暴力求解,先把所有的数值两两存入结构体,再从小到大枚举。用二分的思路去判断数值以及出现,结果TLE,但优化一下应该也能过,因为题目说只有两组数据。代码如下: 1 #include <io
阅读全文
摘要:nth_element函数原型有四个,详细我就不一一累赘了,我们就用最普通的用法寻找第k位置的元素。 函数用法为:nth_element(first,kth,end)。 first,last 第一个和最后一个迭代器,也可以直接用数组的位置。 kth,要定位的第k个元素,能对它进行随机访问. 将第k_
阅读全文
摘要:一、unique函数 这个函数的功能就是删除相邻的重复元素,然后重新排列输入范围内的元素,并返回一个最后一个无重复值的迭代器(并不改变容器长度)。 例如: 运行结果为 unique返回的是迭代器,但我们减去容器首位置就可以得到无重复的长度了。还有就是使用unique函数前得排序(或者保证容器是有序的
阅读全文
摘要:首先声明,本博文部分内容仅仅适用于ACM竞赛,并不适用于NOIP与OI竞赛,违规使用可能会遭竞赛处理,请慎重使用!遭遇任何情况都与本人无关哈=7= 我也不想搞得那么严肃的,但真的有些函数在NOIP与OI竞赛中有相关规定不能使用,详细我也不知道各位要了解请自行去找比赛要求咯,当然在ACM竞赛中,没有限
阅读全文
摘要:都知道排序很重要,也学了各式各样的排序算法,冒泡、插入、归并等等,但其实在ACM比赛中,只要不是太慢的算法,都可以适用(除非某些题目卡时间卡的很死),这个时候,速度与技巧便成了关键,而在C++的标准库中,就已经定义好了一些排序函数,下面来一一介绍它们吧=7= Qsort 函数原型为void qsor
阅读全文
摘要:输入格式 1、cin>>a; 最基本的格式,适用于各种类型。会过滤掉不可见字符例如空格,TAB,回车等 2、cin>>noskipws>>ch[i]; 使用了 noskipws流控制,不会过滤空白字符 3、cin.get(ch); 或 ch = cin.get(); 接收一个字符,类似于getcha
阅读全文