
算法小技巧
幽殇默
他时若遂凌云志,敢笑黄巢不丈夫。
展开
-
小P的数学问题 【分块打表】
题目地址数据范围很大,需要分块打表预处理。#include<cstdio>#include<iostream>using namespace std;typedef long long int LL;const int mod=1e9+7;const int N=1e5;LL a[15]={1,457992974,107146451,373281933,559805077,154425679,679209364,526226141,644158465,73034.原创 2021-06-07 23:40:29 · 243 阅读 · 0 评论 -
离散化的两种方式
方法一: vector实现离散化#include<bits/stdc++.h>using namespace std;vector<int>nums;int n,x;int main(void){ cin>>n; for(int i=0;i<n;i++) cin>>x,nums.push_back(x); sort(nums.begin(),nums.end()); nums.erase(unique(nums.begin(),num原创 2021-10-28 15:16:02 · 327 阅读 · 0 评论 -
二维vector的初始化
const int n=5,m=10;vector< vector<int> > ve(n,vector<int>(m,0));//n行m列原创 2021-10-28 09:31:54 · 148 阅读 · 0 评论 -
c++ unordered_map判断元素是不是在哈希表里的两种方式
方法一:if(mp.count(查找的东西)) printf("存在");else printf("不存在");count()函数是一个计数函数。如果存在,一定返回真否则返回假。方法二:if(mp.find(查找的东西) != mp.end()) printf("存在");else printf("不存在");如果find()函数返回的迭代器不是最后的下一个,即说明在哈希表里。否则不在哈希表里。...原创 2021-09-29 20:10:45 · 1850 阅读 · 0 评论 -
PAT考试小细节
PAT考试也是要特判结尾的空格不要输出的原创 2021-05-08 20:23:04 · 366 阅读 · 0 评论 -
vector的push_back和emplace_back两种方法的比较
效果一样的,不过emplace_back比push_back稍微快点详细说明原创 2021-09-07 17:26:15 · 137 阅读 · 0 评论 -
string 的find 和 rfind函数
find函数: 从前往后找到第一个出现的函数的下标。rfind函数: 从后往前找到第一个出现的函数的下标。原创 2021-06-16 20:20:14 · 412 阅读 · 0 评论 -
isalpha()判断是不是字母
函数名: isalpha()功能: 如果参数是字母字符,函数返回非零值,否则返回零值。原创 2021-06-16 20:16:08 · 265 阅读 · 0 评论 -
算法基本的板子
这里是准备打算法题比赛时的板子。不用万能头文件版#pragma GCC optimize(2)#include<cstdio>#include<iostream>#include<cstring>#include<string>#include<algorithm>#include<vector>#include<map>#include<stack>#include<queue&.原创 2021-06-09 23:04:16 · 1350 阅读 · 3 评论 -
__int128的读入读出模板
__int128不支持cin,cout,scanf,printf对其定义的变量的输入输出,需自己另写输入输出函数。模板:void scan(__int128 &x)//输入{ x = 0; int f = 1; char ch; if((ch = getchar()) == '-') f = -f; else x = x*10 + ch-'0'; while((ch = getchar()) >= '0' && ch &.原创 2021-06-09 22:56:56 · 338 阅读 · 0 评论 -
【long long int 】I64d
原创 2021-06-08 16:22:44 · 99 阅读 · 0 评论 -
prev_permutation函数
prev_permutation函数是与next_permutation作用相反的函数。prev_permutation函数是生成给定序列的上一个较小的排列。原创 2021-06-05 22:41:59 · 1517 阅读 · 0 评论 -
unique 去重
sort:可以将序列排序。unique:可以将序列中所有相邻的重复元素删除(只保留一个)。此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素覆盖了。最后会返回不重复序列的后一个位置。https://www.acwing.com/problem/content/427/#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>usin...原创 2021-05-24 17:21:32 · 852 阅读 · 0 评论 -
stringstream使用案例
http://acm.hdu.edu.cn/showproblem.php?pid=2072#include<cstdio>#include<iostream>#include<string>#include<map>#include<sstream>using namespace std;int main(void){ string s; while(getline(cin,s),s!="#") { .原创 2021-05-10 18:44:07 · 224 阅读 · 0 评论 -
unordered_【set map multist multimap】
unordered_set, unordered_map, unordered_multiset, unordered_multimap, 哈希表上面类似,增删改查的时间复杂度是 O(1)不支持 lower_bound()/upper_bound(), 迭代器的++,–unordered_mapC++ set与map、unordered_map、unordered_set与哈希表...原创 2021-05-09 13:54:05 · 97 阅读 · 0 评论 -
priority_queue 创建小根堆的方法
方法一: 在输入的时候加上负号例如:一个队列 入队的 是 1 2#include<iostream>#include<cstdio>#include<algorithm>#include<queue>using namespace std;int main(void){ priority_queue<int> q; q.push(-1); q.push(-2); cout<<-q.top()<<原创 2021-05-09 10:29:15 · 477 阅读 · 0 评论 -
queue的清空方式
queue是没有 clear函数的。那么queue 该如何清空的呢?答: 只需再创建一个就可以了。#include<iostream>#include<cstdio>#include<algorithm>#include<queue>using namespace std;int main(void){ queue<int> q; q=queue<int>(); }...原创 2021-05-09 10:13:43 · 3831 阅读 · 0 评论 -
vector的三种遍历方式
方式一 : 数组下标#include<iostream>#include<cstdio>#include<algorithm>#include<vector>using namespace std;int main(void){ vector<int> ve; for(int i=0;i<5;i++) ve.push_back(i); for(int i=0;i<5;i++) cout<<ve[i]&l原创 2021-05-09 10:07:49 · 5255 阅读 · 0 评论 -
C++对string进行大小写转换
如何将一个string中的字符全部转换成大写或者全部转换成小写?C++标准目前并没有直接提供这种方法,但是我们可以通过STL的transform算法配合的toupper和tolower来实现该功能。#include <iostream> #include <string>#include <algorithm>#include <iterator>#include <cctype>using namespace std;int转载 2021-04-09 08:40:38 · 457 阅读 · 0 评论 -
C++中带空格的字符串输入
https://blog.youkuaiyun.com/weixin_41066584/article/details/89219798转载 2021-04-02 22:32:44 · 238 阅读 · 0 评论 -
调试小技巧
当做题的时候,如果出现了没有输出的错误。这时候可以用 exit(0)来调试代码找到问题的所在。原创 2021-04-01 13:30:28 · 95 阅读 · 0 评论 -
C++ 11 vector 的遍历,auto关键词
原文链接: https://blog.youkuaiyun.com/yexiaohhjk/article/details/103746838原创 2021-03-31 10:57:39 · 349 阅读 · 0 评论 -
等比 / 等差数列求和公式
原创 2021-03-30 15:52:36 · 1514 阅读 · 0 评论 -
时间复杂度
y神的总结。原创 2021-03-30 09:50:01 · 101 阅读 · 0 评论 -
C++ reverse函数的用法
https://cloud.tencent.com/developer/article/1150743转载 2021-03-29 20:07:44 · 1397 阅读 · 0 评论 -
C/C++中的freopen()函数使用详解
目录C/C++重定向 标准输入输出 的库函数实战C/C++重定向 标准输入输出 的库函数所谓重定向输出,就是可以把原本只是输出在控制台的字符,输出到你指定的路径文件中。(输入类似,就是从指定的文件中读取,而不是读取在控制台中的输入。)重定向函数可以在任何时候开启、关闭。函数名:freopen标准声明:FILE *freopen( const char *path, const char *mode, FILE *stream );所在文件: <stdio.h>参数说明:path:原创 2021-03-26 13:14:57 · 3623 阅读 · 0 评论 -
编程中无穷大常量的设定技巧(ox3f3f3f3f)
通过计算你会发现 0x3f3f3f3f 大约等于 109而我们平时做题的数一般都会小于109所以会认会这个数是一个无穷大的数原文: https://blog.youkuaiyun.com/qq_31267769/article/details/88890612转载 2021-03-26 10:57:30 · 631 阅读 · 0 评论 -
c++快读
有时候会看到大佬们代码里有ios::sync_with_stdio(false);这个其实就是让 cin 和 cout 的速度快的。下面有详细的解释关于C++中ios::sync_with_stdio(false);那么当数据很多的时候,读取的速度很慢,做题的时候会超时。那么如何解决呢? 大佬们想出了快读的方法。快读的详细说明C++快读模板...原创 2021-03-26 10:30:08 · 409 阅读 · 0 评论