Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
/ sandbox Public

My competitive programming notes

Notifications You must be signed in to change notification settings

exoad/sandbox

Repository files navigation

Practice

This is Jack Meng's coding practice repo. Most of the things here are just my solves to online judges like LeetCode, AtCoder, etc., but I also write notes and other helpful stuffs. :)

Content

  • ./Solves/ - Contains all of my general programming solutions and notes as of October 2024. These are mostly for OJs like Codeforces, Atcoder, LeetCode, etc..

  • ./Notes/ - All of my documented notes that I hopefully have formatted properly. They cover various topics. THE LATEX MAY BE MESSED UP FROM GITHUB'S BUILTIN RENDERER. I use KaTeX by default to render them on my end.

  • ./Old-Solves/ - Contains all of my solutions from my past (pre 2023 era).

  • Resources.md - Contains helpful resources that I have found to be extremely helpful.

  • To_Learn.md - Are just simple reminders of what I still need to work on.

  • interesting.txt - This is my old list of resources.

Coding Templates

Located here

#include <algorithm>
#include <array>
#include <iostream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <numeric>
#include <utility>
#include <bitset>
#include <unordered_map>
#include <unordered_set>
#include <stack>
#include <bitset>
#include <cmath>
#include <assert.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <cstdint>
#pragma GCC diagnostic ignored "-Wunused-parameter"
#pragma GCC diagnostic ignored "-Wunused-variable"
#pragma GCC diagnostic ignored "-Wunused-result"
#pragma GCC diagnostic ignored "-Wpragmas"
#pragma GCC diagnostic ignored "-Wunused-function"
#pragma GCC diagnostic ignored "-Wunused-but-set-variable"
#pragma GCC diagnostic ignored "-Wunused-but-set-parameter"
#pragma GCC diagnostic ignored "-Wwrite-strings"
#pragma GCC diagnostic ignored "-Wunused-local-typedefs"
#pragma GCC diagnostic ignored "-Wunused-but-set-label"
#pragma GCC diagnostic ignored "-Wunused-label"
#pragma GCC diagnostic ignored "-Wmissing-field-initializers"
#pragma GCC diagnostic ignored "-Wmissing-braces"
#pragma GCC diagnostic ignore "-Wmaybe-uninitialized"
#pragma GCC diagnostic ignored "-Wmissing-declarations"
#pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt")
#pragma GCC optimize("Ofast", "unroll-loops")
#ifdef __linux__
# include<unistd.h>
#endif
using namespace std;
using ll=long long;
using ull=unsigned long long;
using ld=long double;
using str=string;
#define TRUE 1
#define FALSE 0
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
#define pb push_back
#define lb lower_bound
#define ub upper_bound
#define eb emplace_back
#define RANGE(a,b) for(int i=a;i<=b;i++)
#define PI 3.14159265358979323846
#ifdef LOCAL_JUDGE_HOST
# define __trace(x) cerr<<"["<<__LINE__<<"] "<<#x<<"@"<<&x<<"="<<x<<endl;
#else
# define __trace(x)
#endif
namespace judge
{
 template<typename T>
 inline void partial_sum(vector<T> x)
 {
 partial_sum(all(x),x.begin());
 }
 inline void setIO(str name="")
 {
 ios_base::sync_with_stdio(false);
 cin.tie(nullptr);
 cout.tie(nullptr);
 if (int(name.size()))
 {
 freopen((name+".in").c_str(),"r",stdin);
 freopen((name+".out").c_str(),"w",stdout);
 }
 }
 int gcd(int a,int b)
 {
 return a==0||a==b?b:b==0||b%a==0?a:a>b?gcd(b,a):gcd(a,b%a);
 }
 inline int low_bit(int x)
 {
 return x&(-x);
 }
#ifdef __linux__
 ostream& operator<<(ostream& os,const __int128_t& v)
 {
 if (!v)
 os<<"0";
 __int128_t tmp=v<0?(os<<"-",-v):v;
 string s;
 while (tmp)
 {
 s+='0'+(tmp%10);
 tmp/=10;
 }
 return reverse(all(s)),os<<s;
 }
 ostream& operator<<(ostream& os,const __uint128_t& v)
 {
 if (!v)
 os<<"0";
 __uint128_t tmp=v;
 string s;
 while (tmp)
 {
 s+='0'+(tmp%10);
 tmp/=10;
 }
 return reverse(all(s)),os<<s;
 }
#endif
};
using namespace judge;
namespace generics
{
 template<typename T>
 class Graph
 {
 public:
 struct Edge
 {
 int from;
 int to;
 T weight;
 Edge(int from,int to,T weight) :from(from),to(to),weight(weight)
 {
 }
 };
 vector<Edge> edges;
 vector<vector<int>> ver;
 int n;
 Graph(int n) :n(n)
 {
 ver.resize(n);
 }
 virtual int addEdge(const Edge& edge)=0;
 };
 template<typename T>
 class UndirectedGraph :public Graph<T>
 {
 public:
 UndirectedGraph(int n) :Graph<T>(n)
 {
 }
 int addEdge(const typename Graph<T>::Edge& edge) override
 {
 assert(0<=edge.from&&edge.from<Graph<T>::n&&0<=edge.to&&edge.to<Graph<T>::n);
 int id=(int)Graph<T>::edges.size();
 Graph<T>::ver[edge.from].pb(id);
 Graph<T>::g[edge.to].pb(id);
 Graph<T>::edges.pb(edge);
 return id;
 }
 };
 template<typename T>
 class DirectedGraph :public Graph<T>
 {
 public:
 DirectedGraph(int n) :Graph<T>(n)
 {
 }
 int addEdge(const typename Graph<T>::Edge& edge) override
 {
 assert(0<=edge.from&&edge.from<Graph<T>::n&&0<=edge.to&&edge.to<Graph<T>::n);
 int id=(int)Graph<T>::edges.size();
 Graph<T>::g[edge.from].pb(id);
 Graph<T>::edges.pb(edge);
 return id;
 }
 };
 struct UnionFind
 {
 vector<int> uf;
 int n;
 UnionFind(int n) :uf(n,-1),n(n)
 {
 }
 int find(int v)
 {
 return uf[v]<0?v:uf[v]=find(uf[v]);
 }
 bool join(int v,int w)
 {
 if ((v=find(v))==(w=find(w)))
 return false;
 if (uf[v]>uf[w])
 ::swap(v,w);
 uf[v]+=uf[w];
 uf[w]=v;
 n--;
 return true;
 }
 bool connected(int v,int w)
 {
 return find(v)==find(w);
 }
 int size(int v)
 {
 return -uf[find(v)];
 }
 };
 template<class T>
 class BIT
 {
 private:
 int sz;
 vector<T> bit,arr;
 public:
 BIT(int sz):sz(sz),bit(sz+1),arr(sz)
 {
 }
 void add(int i,int v)
 {
 arr[i]+=v;
 i++;
 for(;i<=sz;i+=low_bit(i))
 bit[i]+=v;
 }
 T psum(int i)
 {
 i++;
 T sum=0;
 for(;i>0;i-=low_bit(i))
 sz+=bit[i];
 return sum;
 }
 void set(int i,int v)
 {
 add(i,v-arr[i]);
 }
 };
};
signed main()
{
 setIO();
 return 0;
}

About

My competitive programming notes

Resources

Stars

Watchers

Forks

AltStyle によって変換されたページ (->オリジナル) /