首页
博客
源码
资源
博客
源码
写文章
发布博客
发布资源
登录
X
acwing
相关资讯
热门
最新
代码人生
01-01 08:00
代码人生
AcWing 801. 二进制中1的个数
AcWing 801. 二进制中1的个数 AcWing 801. 二进制中1的个数 #include <bits/stdc++.h> using namespace std; int lowbit(int x){ return x&-x; } int main(){ int n; cin>>n; while(n--){
350
代码人生
01-01 08:00
代码人生
AcWing算法基础课-数组模拟(单调)栈和队列
AcWing算法基础课-数组模拟(单调)栈和队列,这里我们讲解的是使用数组来模拟栈和队列,不涉及到之后的STL。同时单调栈和队列是比较有意思的,这里主要讲解的是单调栈和队列,数组模拟的普通栈和队列则一带而过。栈栈,是一种先进后出的数据结构,我们可以理解为往一个桶中放东西,放的越早,拿出来的越晚。普通栈普通栈的实现如下//tt表示栈顶intstk[N],tt=0;//向栈顶插入一个数stk[++tt
221
代码人生
01-01 08:00
代码人生
AcWing算法基础课-BF和KMP算法(acwing算法基础班)
AcWing算法基础课-BF和KMP算法(acwing算法基础班),本文未作过多专业讲解,仅用于自身学习时不理解地方的记录一、BF算法又名朴素的模式匹配算法,和我们人的思考模式基本是一样的。如果匹配成功则两个指针都加一,如果匹配失败,则指向主串回溯至下一个位置,指向子串的回溯到零位置。这里为了方便string的使用,采用下标从零开始。BF实现代码如下intindexOneDF(strings,st
205
代码人生
01-01 08:00
代码人生
AcWing 837. 连通块中点的数量
AcWing 837. 连通块中点的数量 AcWing 837. 连通块中点的数量 #include <bits/stdc++.h> using namespace std; const int N=1e6+10; int n,m; int p[N],num[N]; //返回x集合所在的集合+路径压缩 int find(int x){ if(p[x]!=x) p[x]=fi
163
代码人生
01-01 08:00
代码人生
Acwing 600. 仰视奶牛(stack记录成对数写法)(每头奶牛的最近仰视对象)
Acwing 600. 仰视奶牛(stack记录成对数写法)(每头奶牛的最近仰视对象) 地址: 既然是离自己最近,可以想到栈 对于当前数,把它左边数的视为栈。 每次ai与栈顶比较, 如果发现栈顶<ai,说明它可以被栈顶仰视,记录下标。同时清掉栈顶。为什么要清掉呢?因为题目要求的是找最近,既然栈顶已经找到最近答案,后续就用不到它了,所以清掉即可。 否则,while结束。为什么结束?因为栈顶大于>=ai的话,栈里其他的元素也
141
后端
01-01 08:00
后端
Acwing Arithmetic Learning:数据结构(2)
Acwing Arithmetic Learning:数据结构(2),AcwingArithmeticLearning:数据结构(2)目录数据结构(2)acwing1.trie树2.并查集(近乎O(1))3.堆1|0数据结构(2)acwing1|11.trie树快速存储和查找字符串的集合结构特征:例题:Trie字符串统计?1|22.并查集(近乎O(1))思路将两个集合合并询问两个元素是否在一个集合
136
代码人生
01-01 08:00
代码人生
AcWing 3. 完全背包问题
AcWing 3. 完全背包问题 有\(N\)种物品和一个容量是\(V\)的背包,每种物品都有无限件可用。 第\(i\)种物品的体积是\(v_i\),价值是\(w_i\)。 求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。 输出最大价值。 输入格式 第一行两个整数,\(N\),\(V\),用空格隔开,分别表示物品种数和背包容积。 接下来有\(N\)行,每行两个整
135
代码人生
01-01 08:00
代码人生
AcWing 106 动态中位数 (对顶堆)
AcWing 106 动态中位数 (对顶堆) 维护一个大根堆,一个小根堆,设当前序列长度为\(M\) 当前序列从小到大排名\(1~M/2\)的整数存在大根堆 排名\(M/2+1~M\)的整数存在小根堆, 如果插入后某一堆元素过多,就把该堆堆顶取出来插入令一个堆, 这样序列的中位数就是小根堆的堆顶 #include<cstdio> #include<cstring> #inc
134
代码人生
01-01 08:00
代码人生
AcWing 2068. 整数拼接
AcWing 2068. 整数拼接 考察:枚举 + hash 思路: 暴力是直接枚举a[i]与a[j],需要优化省去一重循环.我们枚举的a[i],a[j]检查是否为k倍数时,需要让a[j]*10t + a[i](t位为a[i]的位数,注意这里用字符串转换反而不如直接求位数方便).一重循环枚举a[i]时,t已知,a[i]已知,剩下的是
132
代码人生
01-01 08:00
代码人生
AcWing 139 回文子串的最大长度(二分,hash ver.)
AcWing 139 回文子串的最大长度(二分,hash ver.) 解题思路 ??马拉车当然是求最长回文既简单又快速的方法,不过这里因为要联系hash就没用马拉车了。设回文串的中心为a,b(奇回文a=b)先正着hash一遍,再倒着hash一遍,就能得到[a+len,a]和颠倒后的[b,b+len]两个子串哈希值,对比它们的哈希值就能判断两个子串是否相等,至于len的大小,用二分来判定就行了。 代码 const int
131
«
1
2
3
4
5
6
7
8
...
16
17
»