AcWing
  • 首页
  • 课程
  • 题库
  • 更多
    • 竞赛
    • 题解
    • 分享
    • 问答
    • 应用
    • 校园
  • 关闭
    历史记录
    清除记录
    猜你想搜
    AcWing热点
  • App
  • 登录/注册

算法总结(个人笔记持续更新)

作者: 作者的头像   会飞的泡泡 ,  2022-01-08 11:41:07 ,  所有人可见 ,  阅读 673


3


1

dp
状态机 删除序列

二分题集

打乱字母

if(b[mid]>=a[i])r=mid;//需要目标是大于a[i](第一个数)
if(c[mid]<=a[i])l=mid;//需要目标是小于等于a[i](最后一个数)

Dijkstra算法

1、用双端队列来代替dijksta中需要找最小值点的一步(双端队列广搜)
拖拉机

FloodFill题集

奶牛选美

if(x2>=0&&x2<n&&y2>=0&&y2<m&&g[x2][y2]=='X'){//小心把范围搞错

深搜题集(return前恢复现场)

马蹄铁

差分题集

粉刷栅栏

前缀最值

奶牛过马路

 for(int i=1; i<=n; i++)smax[i]=max(smax[i-1],a[i].y);
 for(int i=n; i; i--)smin[i]=min(smin[i+1],a[i].y);

n进制转换为10进制

int get(string s,int b){
    int res=0;
    for(auto c : s){
        res=res*b+c-'0';
    }
    return res;
}

找到第k个数

nth_element(a+1,a+k,a+n+1);

高度从小到大枚举每座山,然后比较该山对应编号两边的高度 岛

m=unique(h+1,h+m+1)-h-1;//返回值是去重以后的个数

字符串find函数 寻找字符串

    string s;
    if(s.find("0000000")==-1 && s.find("1111111")==-1)

一个序列是合法括号序列,等价于: 最长合法括号子序列

(1)左右括号数量等(cnt=0)
(2)所有前缀中满足cnt>=0(右括号cnt++,左括号cnt–)
贪心思路: cnt>0时右括号能选则选

for(int i=0; s[i]; i++)
        if(s[i]=='(')l++;
        else 
            if(l>0)r++,l--;

队列:push/pop/front

unordered_multiset<int>s1;
s1.erase(s1.find(nums2[i]));//删除set里元素

0 评论

App 内打开
你确定删除吗?
1024
x

© 2018-2025 AcWing 版权所有  |  京ICP备2021015969号-2
用户协议  |  隐私政策  |  常见问题  |  联系我们
AcWing
请输入登录信息
更多登录方式: 微信图标 qq图标 qq图标
请输入绑定的邮箱地址
请输入注册信息