首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Gorit 带你学全栈系列

    算法竞赛(二)

    PS:有时候,按下回车键,不一定意味着输入结束,在windows环境下,我们输入完成后,还要按下 ctrl + z,这个时候代表输入结束,Linux环境下,按下ctrl + D 可代表输入结束

    53020编辑于 2021-12-09
  • 来自专栏Gorit 带你学全栈系列

    算法竞赛(一)

    算法竞赛的目的是找到解决问题的答案,不是比谁的答案更高级!!! - b; 方法三 a=a^b; b=a^b; a=a^b; 方法四 int t; t = a; a = b; b = t; */  这个交换数据的题目还有两种,一种使用指针,还有是用函数,在算法竞赛

    44310编辑于 2021-12-09
  • 来自专栏机器学习/数据可视化

    机器学习算法竞赛实战-竞赛问题建模

    机器学习算法竞赛实战-竞赛问题建模 更新《机器学习算法竞赛实战》一书的阅读笔记,更多详细的内容请阅读原书。 本文的主要内容包含: 竞赛问题建模 针对具体问题的建模分为3个部分: 赛题理解 样本选择 线下评估策略 赛题理解 业务背景:深入业务、明确目标 数据理解:数据基础层、数据描述层;前者关注:字段来源、取数逻辑 准确方法 解决数据集过大或者正负样本不均衡的方法: 简单随机抽样:有放回和无放回 分层采样:评分加权处理(对不同的类别进行加权)、欠采样(随机欠采样、Tomek Links)、过采样(随机过采样、SMOTE算法

    42020编辑于 2023-08-25
  • 来自专栏ACM算法竞赛——模板

    ACM算法竞赛——spfa 算法(模板)

    SPFA 算法是 Bellman-Ford算法 的队列优化算法的别称,通常用于求含负权边的单源最短路径,以及判负权环。SPFA 最坏情况下复杂度和朴素 Bellman-Ford 相同,为 O(VE)。 (百度百科) 这也是为什么在算法竞赛中我们很少使用bellman-ford算法的原因 SPFA 一般:O(m) 线性 最坏:O(nm) int n; // 总点数 int h[N], w[N]

    60430编辑于 2022-05-18
  • 来自专栏Livinfly

    算法竞赛】错误&技巧

    邻接表,h[]忘记初始化。多组数据时,idx未初始化(会造成数组越界) 当使用并查集时,注意自己写的并查集是不是fa[x]随时都是x的祖宗,若不是,记得要用GetFa(x) 变量名有冲突y1, next, prev, has ... 在特别情况下.size()和int整型变量比较时会出错,所以尽量保证式子的运算结果是正数,因为如果是负数,unsigned int类型的变量会变成超大的正数。 priority_queue 默认是大根堆 < Type,vector,greater >是小根堆 图论采用虚拟源点时

    63930编辑于 2023-01-10
  • 来自专栏Livinfly

    算法竞赛 - 搜索】 Solitaire

    8*8的棋盘给你四个点的整体的始末状态(貌似不需要一一对应) 移动方式为十字移动,并且在遇到别的棋子的时候,能够一次跳两格。 问是否能在8步之内到达目标位置

    34810编辑于 2022-10-26
  • 来自专栏ACM算法竞赛——模板

    ACM算法竞赛——Kruskal算法(模板)

    克鲁斯卡尔算法是求连通网的最小生成树的另一种方法。与普里姆算法不同,它的时间复杂度为O(eloge)(e为网中的边数),所以,适合于求边稀疏的网的最小生成树 。

    60630编辑于 2022-05-18
  • 模拟算法竞赛必备)

    一、引言: 模拟算法,简单来说,就是按照题目描述的步骤或规则,一步一步地用代码实现解决问题的过程。就像是你在玩一个游戏,游戏有它自己的规则,而你需要根据这些规则来做出相应的动作以完成特定的目标。 笔者提醒: 模拟这个算法其实非常难,主要是逻辑上的麻烦,但正常刷题时我们都不把模拟的逻辑思维理清就直接做,如果这题没有太水的话,是非常容易错的。 模拟可以与任何算法同时出现,比如模拟与动归dp、模拟与搜索之类的。 而接下来的入门题型,就是“水题”!基础与进阶代码量会大一些。 但这没啥好担心的,这毕竟是算法能力提升的基石-敲代码能力( ̄︶ ̄)↗ 。 三、练习: 模拟类型、是以编程题考察。 (算法详解+例题) 3、C++算法:模拟 ( •̀ ω •́ )✧点击这里,继续学习其他模块吧!

    54000编辑于 2025-10-22
  • 枚举算法竞赛必备)

    常量n }; 但在算法竞赛中的 “枚举”,可不止这么简单。重点:算法中的枚举,是一种思想,而不是一种语法结构! ( •̀ ω •́ )y 二、枚举算法基础 核心思想:将所有可能罗列出来,逐一检验每个解,是否符合条件。

    70600编辑于 2025-10-22
  • 来自专栏ACM算法竞赛——模板

    ACM算法竞赛——floyd算法(模板)

    Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似。 该算法名称以创始人之一、1978年图灵奖获得者、斯坦福大学计算机科学系教授罗伯特·弗洛伊德命名。 (百度百科) Floyd算法用于求多源汇最短路问题,通俗来讲就是求图中任意两点间的最短距离 时间复杂度: O(n^3) 初始化: for (int i = 1; i <= n; i ++ ) (int j = 1; j <= n; j ++ ) if (i == j) d[i][j] = 0; else d[i][j] = INF; // 算法结束后

    46630编辑于 2022-05-18
  • 来自专栏ACM算法竞赛——模板

    ACM算法竞赛——匈牙利算法(模板)

    匈牙利算法是一种在多项式时间内求解任务分配问题的组合优化算法,并推动了后来的原始对偶方法。 (百度百科) 匈牙利算法用于求二分图的最大匹配问题 时间复杂度:O(mn),实际运行时间一般小于O(mn) int n1, n2; // n1表示第一个集合中的点数,n2表示第二个集合中的点数 int h[N], e[M], ne[M], idx; // 邻接表存储所有边,匈牙利算法中只会用到从第一个集合指向第二个集合的边,所以这里只用存一个方向的边 int match[N];

    58730编辑于 2022-05-18
  • 来自专栏OI算法学习笔记

    NOI算法竞赛大纲

    向上的箭头代表提高阶段需掌握的算法。 奖杯代表NOI级 Q.E.D.

    87710编辑于 2022-08-31
  • 来自专栏ACM算法竞赛——模板

    ACM算法竞赛——朴素dijkstra算法(模板)

    int g[N][N]; // 存储每条边 int dist[N]; // 存储1号点到每个点的最短距离 bool st[N]; // 存储每个点的最短路是否已经确定 // 求1号点到n号点的最短路,如果不存在则返回-1 int dijkstra() { memset(dist, 0x3f, sizeof dist); dist[1] = 0; for (int i = 0; i < n - 1; i ++ ) { int t = -1;

    60930编辑于 2022-05-16
  • 来自专栏ACM算法竞赛——模板

    ACM算法竞赛——双指针算法(模板)

    for (int i = 0, j = 0; i < n; i ++ ) { while (j < i && check(i, j)) j ++ ; // 具体问题的逻辑 } 常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 (2) 对于两个序列,维护某种次序,比如归并排序中合并两个有序序列的操作

    38240编辑于 2022-05-14
  • 算法竞赛偷分技巧

    (3)将一些成型的、经典的算法在考前练习熟练,考试时直接用函数写出来,不需要 再多考虑、调试。包括排序、并查集、基本数学算法等,在本文“应该学习的内 容”中有所介绍。

    28410编辑于 2024-06-19
  • 来自专栏Livinfly

    算法竞赛 - 搜索】Eight II

    只是缺少了始末状态一致的数据,导致我血压高了几小时。(和标程对拍没有问题,交上去就WA)

    32630编辑于 2022-10-26
  • 来自专栏Livinfly

    算法竞赛 - 搜索】Black And White

    n*m的棋盘,用k种颜色(每种颜色可以染Ci次)染完,且没有十字相邻格子的颜色一致。

    39720编辑于 2022-10-26
  • 来自专栏Gorit 带你学全栈系列

    算法竞赛习题整理(一)

    5*(f - 32)/9; printf("%.3f",c); return 0; } 三、求和 问题描述:输入正整数n,求1+2+3+4+5+***+n 的值,只要能 算出来结果的就是好算法

    43710编辑于 2021-12-09
  • 来自专栏Livinfly

    算法竞赛 - 搜索】DNA sequence

    给你若干小段DNA序列(字符串),请你找到一个DNA序列(字符串),使得这些小段DNA序列(字符串)都能被这个字符串的子序列(非字串,子序列可不连续)匹配。

    30620编辑于 2022-10-26
  • 来自专栏Livinfly

    算法竞赛 - 搜索】八数码

    题目跳转 POJ1077 Eight 题目大意 经典八数码问题,无需赘述。 本人思路 BFS - 康托展开 - A* 上下左右移动的操作直接自己想好二维的形态,直接在一维中实现 将每个没有在自己位置的棋子与自己的应在的位置的曼哈顿距离之和作为估价函数f 康托展开进行哈希 我的其他思路: 用map代替康托展开来哈希 不加A* TLE 加了A* 比康托展开慢 康托展开的复杂度为O(n^2),而map的时间复杂度为O(nlogn),但是不难发现,用map实现时,会多次调用map中时间复杂度为O(logn)的函数

    53920编辑于 2022-10-26
领券