Code Monkey home page Code Monkey logo

code-templates's Introduction

ACM、OI、OJ、PAT、CSP 题目常用代码模板

前言

本仓库主要提供 ACM、OI、OJ、PAT、CSP 题目中常见算法和数据结构的实现,它们都以基于 C++11 语法的 C++接口的形式呈现。如果有问题或者感觉我的代码中有 bug,可以随时提 issue。

注意,本仓库不负责讲解任何相关知识点,有关知识点的讲解和汇总可参考OI wiki。目前代码仓库还在完善中,部分模板代码还没有完全更新,之后还会添加一批新的模板代码,敬请期待!

默认代码

  1. gg:表示long long类型。本代码仓库中所有整型数据均使用long long类型存储,之所以不用 int 是因为 int 很容易造成数据溢出错误。为了编码方便,可以为long long定义一个类型别名gg,代码可以是using gg = long long。本代码仓库中所有代码均默认导入了这行定义类型别名的代码,即本代码仓库中所有的gg均表示long long类型
  2. MAX:表示问题数据规模的上限。本仓库的代码经常会开一个非常大的全局数组,长度即为MAX。在使用这样的代码时,你需要在定义这个数组之前定义并初始化MAX变量,代码可以是constexpr gg MAX = 1e6 + 5
  3. INF:表示一个正无穷大的正整数。在使用含有INF的代码时,你需要在定义这个数组之前定义并初始化INF变量,代码可以是constexpr gg INF = 2e18。相应地,负无穷小可以用-INF表示。
  4. nimi等:表示输入序列所包含的元素个数。例如,ni变量代表输入一维数据的总数,nimi分别表示输入二维数据两个维度上的总数,等等。后缀iinput的缩写,表明该变量是由输入指定的,以此与普通的nm等变量相区分。

因此,运行本仓库代码前的默认依赖定义如下:

#include <bits/stdc++.h>
using namespace std;
using gg = long long;
constexpr gg MAX = 1e6 + 5;
constexpr gg mod = 1e9 + 7;
constexpr gg INF = 2e18;
constexpr double thre = 1e-7;  //用以判断两个浮点数是否相等的阈值
gg ti, ni, mi, ki, di, pi, xi, yi;

相关链接

有关知识点的讲解和汇总可参考OI wiki,有关练习题目可参考一个动态更新的洛谷综合题单。本仓库主要参考了这两个网站的内容,在此对 OI wiki 和综合题单的撰写者和维护者表示诚挚的谢意。

致谢

感谢CitySkylines对仓库代码中的 bug 的提醒。

code-templates's People

Contributors

richenyunqi avatar

Stargazers

SKM.Lu avatar  avatar Choo avatar skyline avatar Joey avatar 李嘉伟 avatar Lwj avatar yumy avatar weihehe avatar  avatar 天边的生活 avatar Yeliauk avatar Tree group avatar Kris Wang avatar QiuFeng avatar  avatar  avatar MYD avatar zyy avatar  avatar  avatar Saar avatar Zacharyyyyyy_Z avatar  avatar Liangwei Lv avatar  avatar JaamieZheng avatar Josh Zeng avatar  avatar  avatar  avatar 乔浩 avatar Whomes avatar Liang avatar  avatar Jiang Jiwen avatar Annie-XIE avatar Bonn avatar MqxJerome avatar Stay hungry avatar  avatar Hao Chen avatar  avatar Gavin_jy avatar  avatar CreepZz avatar Jonty avatar  avatar Harel avatar Victor Huang avatar  avatar Junbao Zhou avatar  avatar Campbell He avatar for2001 avatar  avatar  avatar  avatar Tang Jiachen avatar Frazier Lei avatar DuBron avatar deng avatar Sonder Lau avatar Chaos Chen avatar  avatar Wayne Feng avatar  avatar bcurd avatar zhaotl avatar  avatar  avatar  avatar teddiess avatar  avatar xq avatar naive avatar kangli avatar  avatar  avatar Ren Zhou avatar  avatar Liangzhihao avatar r00tk1t avatar  avatar  avatar  avatar Explosion avatar  avatar maybeLocalhost avatar Cai ZeBin avatar MarkXu avatar Himwen_ avatar Mickey avatar Adam avatar Treattttt avatar 海浪 avatar

Watchers

James Cloos avatar  avatar 刘白 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.