前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Sky390 的 OI 工具库

Sky390 的 OI 工具库

作者头像
Skykguj
发布2022-09-09 12:08:21
9540
发布2022-09-09 12:08:21
举报
文章被收录于专栏:Skykguj 's Blog

本文将会不定期更新~

代码模板

我的 OI 代码模版。

代码语言:javascript
复制
#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
#include <cstdio>

typedef long long ll;
typedef unsigned long long ull;

typedef std::pair<int, int> PII;
typedef std::pair<ll, ll> PLL;

#define x first
#define y second

const int dx[4] = {0, 1, 0, -1};
const int dy[4] = {-1, 0, 1, 0};

数据范围反推算法

一般 OI / ACM 或者笔试题的时间限制是 1 秒或 2 秒。在这种情况下,C++ 代码中的操作次数控制在 10^7 \sim 10^8 为最佳。

下面给出在不同数据范围下,代码的时间复杂度和算法该如何选择:

  • n \le 30, 指数级别, Dfs + 剪枝,状态压缩 DP
  • n \le 100 => O(n^3),Floyd,DP,高斯消元
  • n \le 1000 => O(n^2)O(n^2 \log n),DP,二分,朴素版 Dijkstra、朴素版 Prim、Bellman-Ford
  • n \le 10000 => O(n * \sqrt n),块状链表、分块、莫队
  • n \le 100000 => O(n \log n) => 各种 Sort,线段树、树状数组、Set/Map、Heap、拓扑排序、Dijkstra + Heap、Prim + Heap、Kruskal、SPFA、求凸包、求半平面交、二分、CDQ 分治、整体二分、后缀数组、树链剖分、动态树
  • n \le 1000000 => O(n), 以及常数较小的 O(n \log n) 算法 => 单调队列、 Hash、双指针扫描、并查集,kmp、AC自动机,常数比较小的 O(n \log n) 的做法:sort、树状数组、heap、Dijkstra、SPFA
  • n \le 10000000 => O(n),双指针扫描、KMP、AC 自动机、线性筛素数
  • n \le 10^9 => O(\sqrt n),判断质数
  • n \le 10^{18} => O(\log n),最大公约数,快速幂,数位 DP
  • n \le 10^{1000} => O((\log n)^2),高精度加减乘除
  • n \le 10^{100000} => O(\log k \times \log \log k),k 表示位数,高精度加减、FFT / NTT

本部分来自 yxc 的文章:《由数据范围反推算法复杂度以及算法内容》,有改动。

实用链接

着重推荐 https://cftracker.netlify.app/contestshttps://kenkoooo.com/atcoder#/table

简述

详情

在线查看汇编

甚至支持代码片段的汇编

模板 OJ

专门为模板题提供评测的 OJ

并查集的最优写法

对比八种并查集写法,给出在不同条件下的最优写法

大组合数取模

大组合数 \binom{n}{m} 对任意质数幂 p^e 取模在 \mathcal O (p e + e \log_p n) 次大数乘法内解决

用人话解析 C++ 语法

给出变量或数组或函数的定义或类型转换,翻译成英语以供理解

AtCoder 数据

下载 AtCoder 每题的测试数据

AtCoder 难度评分和 AC 统计

方便查询每题的难度系数,也可以指定用户名查看通过的题目,还有更多功能

分解质因数

只能说是一个很奇怪的分解质因数的网站

Codeforces 插件

由于 Chrome 禁止未知来源的扩展程序,请在 Chrome 网上应用店中安装使用

Codeforces 掉分预测

由于 Chrome 禁止未知来源的扩展程序,请在 Chrome 网上应用店中安装使用

比较两个文本之间的差异

看起来甚至支持图片和 PDF 的比较,这合理吗?

GCC 编译选项推荐

预防各种 bug

Codeforces 刷题信息统计

由于 Chrome 禁止未知来源的扩展程序,请在 Chrome 网上应用店中安装使用

更好的 Codeforces 掉分预测

由于 Chrome 禁止未知来源的扩展程序,请在 Chrome 网上应用店中安装使用

Codeforces AC 统计

指定用户名查看通过的题目,大大有利于刷题

C++ 运行时错误查询

调题必备;须会英文()

转自 FYMS-OI(YAOJ) 《OI 实用链接》,有改动。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022 年 05 月,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 代码模板
  • 数据范围反推算法
  • 实用链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档