头像

17孟晓龙




离线:13小时前


最近来访(96)
用户头像
Book
用户头像
大雪菜3号
用户头像
冷水.
用户头像
mddmdd
用户头像
styfyy
用户头像
binbin
用户头像
UncleDrew暴力扣酱
用户头像
hpstory
用户头像
迷惑且牛逼
用户头像
PigOrDog
用户头像
together_3
用户头像
zin
用户头像
HeXing
用户头像
垫底抽風
用户头像
努力努力在努力
用户头像
liumusi2022
用户头像
AC_Dragon
用户头像
y总的忠实粉丝
用户头像
南岸以南南岸哀
用户头像
种花家的蒟蒻

分享 原文

关注,点赞,加收藏

一、C++语言部分
1. 类
•【6】成员函数和运算符重载
2. STL 模板 ,特别是STL的应用,掌握STL是转提高的最大捷径(重点中的重点)
•【5】集合(set) 、无序集合(unordered_set)、多重集合(multiset)
•【5】列表(list),双端队列(deque),优先队列(priority_queue)
•【5】映射(map),多重映射(multimap) 、无序映射(unordered_map)
•【5】对(pair),元组(tuple)

二、数据结构部分
1. 线性结构
•【5】单调栈
•【5】单调队列
•【6】倍增表(ST 表)
•【8】分块
2. 集合与森林
•【6】并查集
•【6】多叉树与二叉树的转化——孩子兄弟表示法(了解即可)
3. 特殊树
•【6】线段树与树状数组
•【6】字典树(trie 树)
4. 常见图
•【5】稀疏图
•【6】偶图(二分图)
•【6】欧拉图
•【6】有向无环图 (DAG)
•【7】连通图与强连通图
三、算法部分
1. 复杂度分析
•【6】空间复杂度分析
•【6】时间复杂度分析
2. 基础算法
•【6】分治算法
3. 排序算法
•【5】归并排序
•【5】快速排序
•【6】堆排序
•【5】桶排序
•【6】基数排序
4. 字符串相关算法
•【5】字符串匹配算法——KMP
5. 搜索算法 (重点中的重点)
•【6】搜索的剪枝优化
•【6】记忆化搜索
•【7】双向宽度优先搜索、折半搜索
•【7】迭代加深搜索
•【8】搜索对象的压缩存储(状态的二进制压缩、字符串表示法)
6. 图论算法
•【6】Prim 和 Kruskal 等求最小生成树算法
•【6】Dijkstra、bellman ford、SPFA 等求单源最短路算法
•【6】Floyd-Warshall 算法求任意两点间的最短路和传递闭包
•【6】有向无环图的拓扑排序算法
•【6】求欧拉道路和欧拉回路算法
•【6】二分图的构造及其判定算法
•【6】最近公共祖先
•【7】求强联通分量算法
•【7】强连通分量的缩点算法
•【7】求割点、割边算法
7. 动态规则(重点中的重点)
•【6】树型动态规划
•【7】状态压缩动态规划
四、数学部分(暂时了解即可)
1. 高中数学
•【5】代数
•【6】解析几何
•【6】立体几何
2. 初等数论
•【5】同余式
•【7】欧拉定理和欧拉函数
•【7】费马小定理
•【7】威尔逊定理
•【7】裴蜀定理
•【7】逆元
•【7】扩展欧几里得算法
•【7】孙子定理(即中国剩余定理)
3. 组合数学
•【6】可重集排列
•【6】可重集组合
•【6】错排列、圆排列
•【6】鸽巢原理
•【6】二项式定理
•【7】容斥原理
•【7】卡特兰数
4. 线性代数
•【5】矩阵概念
•【6】特殊矩阵:稀疏矩阵,三角矩阵,对称矩阵
•【6】矩阵的初等变换
•【6】矩阵的加减乘和转置运算
•【7】线性方程组的高斯消元法



新鲜事 原文

洛谷上的挖土机杯,小挖的买花,谁会



题目链接 LeetCode XXX

快排样例过不了,求支援。

错误的代码:

#include <cstdio>
int main()
{
    int n;
    cin>>n;
    int a[1000];
    for(int i=1;i<n;i++){
        cin>>a[i];
    }
    sort(a+1,a+n+1);
    for(int i=1;i<=n;i++){
        cout<<a[i]<<" ";
    }
}


新鲜事 原文

csp成绩什么时候出来呀



谁会Dp和归并排序



新鲜事 原文

感谢 Finn2009 的 刷赞!!



紧急之间打的,喜欢的关注下

思路

先求出总路程,在求出速度和。如果两个相除余数为0,则代表时间是整数,就输出两数相除的商。否则就代表商是小数。

题目介绍

在一个一维数轴的 x 位置处站着甲,y 位置处站着乙,其中 x<y。

两人沿着数轴同时出发,相向而行 ,甲每秒的移动距离为 a,乙每秒的移动距离为 b。

请问,多少秒后,两人相遇。

输入输出

输入格式
第一行包含整数 T,表示共有 T 组测试数据。

每组数据占一行,包含四个整数 x,y,a,b。

输出格式
如果答案为整数秒,则输出答案,否则输出 −1。

数据范围
前 3 个测试点满足 1≤T≤10。
所有测试点满足 1≤T≤1000,0≤x<y≤109,1≤a,b≤109。

输入样例:
5
0 10 2 3
0 10 3 3
900000000 1000000000 1 9999999
1 2 1 1
1 3 1 1
输出样例:
2
-1
10
-1
1

C++ 代码

#include<bits/stdc++.h>
using namespace std;

int main(){
    int x,y;
    int a,b;
    int t;
    cin>>t;
    for(int i=1;i<=t;i++){
        cin>>x>>y>>a>>b;
        if((y-x)%(a+b)==0)cout<<(y-x)/(a+b)<<endl;
        else cout<<"-1"<<endl;
    }
    return 0;
}




活动打卡代码 AcWing 4615. 相遇问题

思路

先求出总路程,在求出速度和。如果两个相除余数为0,则代表时间是整数,就输出两数相除的商。否则就代表商是小数。

输入格式

输入格式
第一行包含整数 T,表示共有 T 组测试数据。
每组数据占一行,包含四个整数 x,y,a,b。

输出格式
如果答案为整数秒,则输出答案,否则输出 −1。

数据范围
前 3 个测试点满足 1≤T≤10。
所有测试点满足 1≤T≤1000,0≤x<y≤109,1≤a,b≤109。

输入样例:
5
0 10 2 3
0 10 3 3
900000000 1000000000 1 9999999
1 2 1 1
1 3 1 1
输出样例:
2
-1
10
-1
1

C++ 代码

#include<bits/stdc++.h>
using namespace std;

int main(){
    int x,y;
    int a,b;
    int t;
    cin>>t;
    for(int i=1;i<=t;i++){
        cin>>x>>y>>a>>b;
        if((y-x)%(a+b)==0)cout<<(y-x)/(a+b)<<endl;
        else cout<<"-1"<<endl;
    }
    return 0;
}


新鲜事 原文

洛谷上怎么发题解呀


活动打卡代码 AcWing 4269. 校庆

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n, m;
    scanf("%d", &n);
    char str[20];
    unordered_set<string> hash;
    while (n -- ){
        scanf("%s", str);
        hash.insert(str);
    }
    scanf("%d", &m);
    string a, b;
    int cnt = 0;
    while (m -- ){
        scanf("%s", str);
        string name = str;
        if (hash.count(name)){
            cnt ++ ;
            if (a.empty() || a.substr(6, 8) > name.substr(6, 8)) a = name;
        }

        if (b.empty() || b.substr(6, 8) > name.substr(6, 8)) b = name;
    }
    printf("%d\n", cnt);
    if (cnt) printf("%s\n", a.c_str());
    else printf("%s\n", b.c_str());
    return 0;
}