Junkman丶
码龄6年
关注
提问 私信
  • 博客:28,886
    动态:27
    28,913
    总访问量
  • 31
    原创
  • 533,444
    排名
  • 6
    粉丝
  • 0
    铁粉
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:四川省
  • 加入CSDN时间: 2019-03-18
博客简介:

qq_44794039的博客

查看详细资料
个人成就
  • 获得41次点赞
  • 内容获得3次评论
  • 获得57次收藏
创作历程
  • 8篇
    2022年
  • 1篇
    2021年
  • 3篇
    2020年
  • 19篇
    2019年
成就勋章
TA的专栏
  • 题解
    4篇
  • 算法模板
    22篇
  • C/C++
    27篇
创作活动更多

HarmonyOS开发者社区有奖征文来啦!

用文字记录下您与HarmonyOS的故事。参与活动,还有机会赢奖,快来加入我们吧!

0人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

【C/C++】队列(queue)、优先队列(priority_queue)、双向队列(deque)

队列(queue)【头文件】#include <queue>【声明定义对象】queue<int> que;queue<string> que;queue<node> que;【使用操作】que.front()返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。que.back()返回 queue 中最后一个元素的引用。如果 queue 是常量,就返回一个常引用;如果
原创
发布博客 2022.03.03 ·
1098 阅读 ·
1 点赞 ·
0 评论 ·
5 收藏

【C/C++】数字(int / long / long long)与字符串(string)之间的转换

[数字] 转换 “字符串”(int -> string)【头文件】#include <string>注意这个是string,不是cstring从C++11开始引入【函数名】to_string()std::to_string(int)std::to_string(long)std::to_string(long long)std::to_string(float)std::to_string(double)std::to_string(long double)
原创
发布博客 2022.03.03 ·
10115 阅读 ·
13 点赞 ·
0 评论 ·
26 收藏

【C/C++】约瑟夫环问题(递归+数学+迭代优化空间)

问题引入: 约瑟夫环问题是个著名的问题:n个人围成一圈,第一个人从1开始报数,报m的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。首先给出公式后面进行解释递推公式f(n, m)表示,n个人报数,每报到m时杀掉那个人,返回最终胜利者的编号。核心思路因为我们知道最后剩下一个人的情况时胜利者的下标是0,也就是我们已知胜利者最后的位置,逆推到最初的时候胜利者所在的位置:关注胜利者的下标位置是怎么变的每杀掉一个人,其实就是把这个数组向前移动了m位为什么是向前移动
原创
发布博客 2022.03.01 ·
1032 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

【C/C++】树状数组总结和扩展(单点修改,区间查询)

视频讲解:B站视频链接【时间复杂度】单点修改:O(logn)区间查询:O(logn)n次操作总复杂度为:O(nlogn)【前置知识 — lowbit()运算】int lowbit(int x){ return x & (-x);}lowbit(n)运算表示求n在二进制表示下最低位1及其后面的0所构成的数值。lowbit(44) = lowbit((101100)₂) = (100)₂ = 4101100 按位取反得:010011 再加1得:010100将 101100 与
原创
发布博客 2022.02.28 ·
362 阅读 ·
2 点赞 ·
0 评论 ·
1 收藏

【C/C++】memset()和fill()函数

memset()函数【头文件】C语言中为:#include <memory.h> 或 #include <string.h>C++中为:#include <cstring>【使用方法】memset函数的作用是:按照字节填充某字符memset效率比for循环赋值和fill赋值要快一些将int数组初始化为0:int a[10005];memset(a, 0, sizeof(a));将int数组初始化为-1:int a[10005];memset
原创
发布博客 2022.02.24 ·
1118 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

【C/C++】结构体内重载(优先队列或sort()函数对结构体里的元素进行结构体排序)

结构体内重载定义【代码模板】struct node{ int u, v; friend bool operator < (node a , node b){ if(a.u == b.u) return a.v > b.v; return a.u > b.u; //优先队列中的排序大小与结构体里重载的符号相反 //sort()函数中的排序大小与结构体里重载的符
原创
发布博客 2022.02.24 ·
1000 阅读 ·
2 点赞 ·
0 评论 ·
3 收藏

【C/C++】二分查找算法模板总结(适用于大多数情况)

二分查找算法模板【二分条件】条件: 单调、有序时间复杂度: O(logn)【伪代码模板】l = -1, r = n //注意l和r一开始要在区间外 也就是二分区间为[0, n-1]while(l + 1 != r){ m = (l + r)>>1; //m∈[0, n) if(check()){ l = m; } else{ r = m; } return l or r; //根据实际情况选择返回l或者r}【注意细节】为什么l和r一开始要在区间外面?
原创
发布博客 2022.02.24 ·
882 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

【C/C++】最大公约数(GCD)和最小公倍数(LCM)

最大公约数(Greatest Common Divisor)【目的】计算两个非负整数a,b的最大公约数例如:12 和 8 的最大公约数为 4【代码模板】int GCD(int a, int b){ return b == 0 ? a : GCD(b, a % b);}【相关原理】欧几里得算法、辗转相除法、更相减损术。欧几里得算法 又称 辗转相除法,而 辗转相除法 是 更相减损术 的 优化计算公式gcd(a, b) = gcd(b, a % b)【思路】假设有两个数161和
原创
发布博客 2022.02.24 ·
1399 阅读 ·
1 点赞 ·
0 评论 ·
2 收藏

[洛谷 | 字符串、贪心]P1106 删数问题

题目描述键盘输入一个高精度的正整数NN(不超过250250位),去掉其中任意kk个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的NN和kk,寻找一种方案使得剩下的数字组成的新数最小。输入格式nn(高精度的正整数 )。kk(需要删除的数字个数 )。输出格式最后剩下的最小数。输入输出样例输入 #1175438 4输出 #113注意:如果是直接删掉最大的数字,很容易便可举出反例:1529 1如果直接删最大的9,结果为1...
原创
发布博客 2021.03.05 ·
499 阅读 ·
1 点赞 ·
2 评论 ·
1 收藏

[算法]Manacher(马拉车)求最长回文串

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;char s[11000002];char s_new[21000002];//存添加字符后的字符串 int p[21000002];int Ini...
原创
发布博客 2020.02.12 ·
156 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

tarjan算法(tarjan求强连通分量+割点+割边)

tarjan求强连通分量:void tarjan(int now){ dfn[now]=low[now]=++cnt; //初始化 stack[++t]=now;       //入栈操作 v[now]=1;         //v[]代表该点是否已入栈 for(int i=f[now];i!=-1;i=e[i].next) //邻接表存图 ...
原创
发布博客 2020.02.01 ·
183 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

最长公共子序列(LCS)

数学表达式描述:dp表格:单求长度时候:#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int N = 1000;char a[N],b[N];int dp[N][N];int main(){ int lena,lenb,i,j;...
原创
发布博客 2020.01.22 ·
120 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

Java大整数

Java大整数导入包模块import java.util.*; //全部import java.math.*; //全部import java.util.Scanner; //输入import java.math.BigInteger; //大整数输入模块import java.util.Scanner; //导入输入的包Scanner cin = new Scanner(Sy...
原创
发布博客 2019.12.10 ·
212 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

最短路(dij堆优化)

struct edge{ int to, cost;//若u到v有条边,边权为w,则u.to -> v, u.cost -> w};vector<edge> G[maxn];int d[maxn];int n, m;void dij(int s){ priority_queue<PII, vector<PII>, greater<PII...
原创
发布博客 2019.11.19 ·
448 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

分解质因子

vector<int> p;//处理好的p数组存放递增的质数int temp = x;//对x进行分解质因子for(int j = 0; p[j] * p[j] <= temp; j++){ if(temp % p[j] != 0) continue;//如果除不尽就直接下一个质数 int cnt = 0;//记录这个质数 while(temp % p[j] == 0)...
原创
发布博客 2019.11.02 ·
105 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

C++筛素数

埃式筛法时间复杂度: O(n*lglgn)
原创
发布博客 2019.11.02 ·
1175 阅读 ·
6 点赞 ·
1 评论 ·
2 收藏

Codeforces Round #596 Div. 2 C. p-binary

题目连接:C. p-binary思路:n = (2^x1 + p) + (2^x2 + p ) + …转换一下把右边的所有p移到左边:n - p * cnt = 2^x1 + 2^x2 + 2^x3;枚举cnt,从1开始,边界是 (n - p * cnt) > 0,因为右边 > 0;设 x = n - cnt * p;计算 x 的二进制下有几个1,如果1的个数 <...
原创
发布博客 2019.10.27 ·
200 阅读 ·
2 点赞 ·
0 评论 ·
0 收藏

lower_bound( )和upper_bound( )的常见用法

lower_bound( )和upper_bound( )都是利用二分查找的方法在一个排好序的数组中进行查找的。时间复杂度:O(logn)在从小到大的排序数组中:lower_bound(begin, end, num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到返回该数字的地址,不存在则返回end。通过返回的地址减去起始地址begin,得到找到数字...
原创
发布博客 2019.10.08 ·
717 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多