diff --git a/.vscode/acm98.code-snippets b/.vscode/acm98.code-snippets new file mode 100644 index 0000000..6b01cb0 --- /dev/null +++ b/.vscode/acm98.code-snippets @@ -0,0 +1,86 @@ +{ + // Place your acm 工作区 snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and + // description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope + // is left empty or omitted, the snippet gets applied to all languages. The prefix is what is + // used to trigger the snippet and the body will be expanded and inserted. Possible variables are: + // $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders. + // Placeholders with the same ids are connected. + // Example: + // "Print to console": { + // "scope": "javascript,typescript", + // "prefix": "log", + // "body": [ + // "console.log('$1');", + // "$2" + // ], + // "description": "Log output to console" + // } + "ICPC Starndard Header C++98": { + "scope": "c,cpp", + "prefix": "acm98", + "body": [ + "#define _CRT_SECURE_NO_WARNINGS", + "#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING", + "#include ", + "using namespace std;", + "#define CRP(t, x) const t &x", + "#define OPX(op, t, x) operator op(CRP(t, x))", + "#define OPL(t, x) bool OPX(<, t, x) const", + "#define FIL(x, v) memset(x, v, sizeof(x))", + "#define CLR(x) FIL(x, 0)", + "#define NE1(x) FIL(x, -1)", + "#define INF(x) FIL(x, 0x3f)", + "#ifndef _DEBUG", + "#define _DEBUG 0", + "#endif // !_DEBUG", + "#define IFD if (_DEBUG)", + "typedef int64_t ll, i64;", + "typedef uint64_t ull, u64;", + "inline char getchar(int)", + "{", + " static char buf[64 << 20], *S = buf, *T = buf;", + " if (S == T) T = fread(S = buf, 1, 64 << 20, stdin) + buf;", + " return S == T ? EOF : *S++;", + "}", + "template ", + "inline bool read(T &x)", + "{", + " int ch = x = 0, f = 1;", + " while (!isdigit(ch = getchar()))", + " if (ch == EOF)", + " return false;", + " else if (ch == '-')", + " f = 0;", + " for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0';", + " return x = f ? x : -x, true;", + "}", + "template ", + "inline bool read(T1 &v1, T2 &v2) { return read(v1) && read(v2); }", + "template ", + "inline bool read(T1 &v1, T2 &v2, T3 &v3) { return read(v1) && read(v2) && read(v3); }", + "template ", + "inline bool read(T1 &v1, T2 &v2, T3 &v3, T4 &v4) { return read(v1) && read(v2) && read(v3) && read(v4); }", + "template ", + "inline bool read(T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5) { return read(v1) && read(v2) && read(v3) && read(v4) && read(v5); }", + "inline ll gcd(ll a, ll b)", + "{", + " for (; b; swap(a, b)) a %= b;", + " return a;", + "}", + "inline ll fpow(ll a, ll b, ll m)", + "{", + " ll r = 1;", + " for (; b; b >>= 1, a = a * a % m)", + " if (b & 1) r = r * a % m;", + " return r;", + "}", + "const double eps = 1e-8;", + "inline int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; }", + "int main()", + "{", + " $0", + " return 0;", + "}", + ] + } +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index d920205..4746104 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,6 +7,12 @@ }, "cmake.configureOnOpen": false, "files.associations": { - "functional": "cpp" + "functional": "cpp", + "chrono": "cpp", + "type_traits": "cpp", + "csetjmp": "cpp", + "cfloat": "cpp", + "ciso646": "cpp", + "iosfwd": "cpp" } } \ No newline at end of file diff --git a/Article6/Water/poj1000.cpp b/Article6/Water/poj1000.cpp new file mode 100644 index 0000000..58d16d1 --- /dev/null +++ b/Article6/Water/poj1000.cpp @@ -0,0 +1,118 @@ +#define _CRT_SECURE_NO_WARNINGS +#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING +#ifdef ONLINE_JUDGE +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +typedef long long int64_t; +typedef unsigned long long uint64_t; +#else +#include +#endif +using namespace std; +#define CRP(t, x) const t &x +#define OPX(op, t, x) operator op(CRP(t, x)) +#define OPL(t, x) bool OPX(<, t, x) const +#define FIL(x, v) memset(x, v, sizeof(x)) +#define CLR(x) FIL(x, 0) +#define NE1(x) FIL(x, -1) +#define INF(x) FIL(x, 0x3f) +#ifndef _DEBUG +#define _DEBUG 0 +#endif // !_DEBUG +#define IFD if (_DEBUG) +typedef int64_t ll, i64; +typedef uint64_t ull, u64; +inline char getchar(int) +{ + static char buf[64 << 20], *S = buf, *T = buf; + if (S == T) T = fread(S = buf, 1, 64 << 20, stdin) + buf; + return S == T ? EOF : *S++; +} +template +inline bool read(T &x) +{ + int ch = x = 0, f = 1; + while (!isdigit(ch = getchar())) + if (ch == EOF) + return false; + else if (ch == '-') + f = 0; + for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0'; + return x = f ? x : -x, true; +} +template +inline bool read(T1 &v1, T2 &v2) { return read(v1) && read(v2); } +template +inline bool read(T1 &v1, T2 &v2, T3 &v3) { return read(v1) && read(v2) && read(v3); } +template +inline bool read(T1 &v1, T2 &v2, T3 &v3, T4 &v4) { return read(v1) && read(v2) && read(v3) && read(v4); } +template +inline bool read(T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5) { return read(v1) && read(v2) && read(v3) && read(v4) && read(v5); } +inline ll gcd(ll a, ll b) +{ + for (; b; swap(a, b)) a %= b; + return a; +} +inline ll fpow(ll a, ll b, ll m) +{ + ll r = 1; + for (; b; b >>= 1, a = a * a % m) + if (b & 1) r = r * a % m; + return r; +} +const double eps = 1e-8; +inline int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; } +int main() +{ + int a, b; + read(a, b); + printf("%d", a + b); + return 0; +} \ No newline at end of file diff --git a/Codeforces/1253D.cpp b/Codeforces/1253D.cpp new file mode 100644 index 0000000..2901206 --- /dev/null +++ b/Codeforces/1253D.cpp @@ -0,0 +1,97 @@ +#define _CRT_SECURE_NO_WARNINGS +#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING +#include +using namespace std; +#define CRP(t, x) const t &x +#define OPX(op, t, x) operator op(CRP(t, x)) +#define OPL(t, x) bool OPX(<, t, x) const +#define FIL(x, v) memset(x, v, sizeof(x)) +#define CLR(x) FIL(x, 0) +#define NE1(x) FIL(x, -1) +#define INF(x) FIL(x, 0x3f) +#ifndef _DEBUG +#define _DEBUG 0 +#endif // !_DEBUG +#define IFD if (_DEBUG) +typedef int64_t ll, i64; +typedef uint64_t ull, u64; +template +using comtype = typename common_type::type; +template +using enable_if_arithmetic = typename enable_if::value>::type; +template +using enable_if_integral = typename enable_if::value>::type; +inline char getchar(int) +{ + static char buf[64 << 20], *S = buf, *T = buf; + if (S == T) T = fread(S = buf, 1, 64 << 20, stdin) + buf; + return S == T ? EOF : *S++; +} +template > +inline bool read(T &x) +{ + int ch = x = 0, f = 1; + while (!isdigit(ch = getchar())) + if (ch == EOF) + return false; + else if (ch == '-') + f = 0; + for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0'; + return x = f ? x : -x, true; +} +template > +inline bool read(T &x, Args &... args) { return read(x) && read(args...); } +template > +inline TResult mmin(CRP(T1, v1), CRP(T2, v2)) { return min(v1, v2); } +template > +inline TResult mmin(CRP(T, v), const Args &... args) { return min(v, mmin(args...)); } +template > +inline TResult mmax(CRP(T1, v1), CRP(T2, v2)) { return max(v1, v2); } +template > +inline TResult mmax(CRP(T, v), const Args &... args) { return max(v, mmax(args...)); } +inline ll gcd(ll a, ll b) +{ + for (; b; swap(a, b)) a %= b; + return a; +} +inline ll fpow(ll a, ll b, ll m) +{ + ll r = 1; + for (; b; b >>= 1, a = a * a % m) + if (b & 1) r = r * a % m; + return r; +} +constexpr double eps = 1e-8; +inline int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; } +const int N = 4e5 + 55; +int fa[N]; +int find(int x) { return x == fa[x] ? x : fa[x] = find(fa[x]); } +int main() +{ + int n, m; + read(n, m); + for (int i = 0; i <= n; i++) fa[i] = i; + for (int i = 0, x, y; i < m; i++) read(x, y), fa[find(x)] = find(y); + int grps = 0; + for (int i = 1; i <= n; i++) grps = max(grps, find(i)); + vector> v(grps + 1); + for (int i = 1; i <= n; i++) v[find(i)].push_back(i); + int ans = 0; + set S; + for (int i = 1; i <= n; i++) S.insert(i); + while (!S.empty()) + { + int curmin = *S.begin(); + int ty = find(curmin); + int curmax = *v[ty].rbegin(); + for (int i = curmin + 1; i < curmax; i++) + { + if (find(i) != ty) + ans++, curmax = max(curmax, *v[find(i)].rbegin()), fa[find(i)] = ty; + S.erase(i); + } + S.erase(curmin), S.erase(curmax); + } + printf("%d", ans); + return 0; +} \ No newline at end of file diff --git a/tmpl98.cpp b/tmpl98.cpp new file mode 100644 index 0000000..32fbc0d --- /dev/null +++ b/tmpl98.cpp @@ -0,0 +1,62 @@ +#define _CRT_SECURE_NO_WARNINGS +#define _SILENCE_CXX17_C_HEADER_DEPRECATION_WARNING +#include +using namespace std; +#define CRP(t, x) const t &x +#define OPX(op, t, x) operator op(CRP(t, x)) +#define OPL(t, x) bool OPX(<, t, x) const +#define FIL(x, v) memset(x, v, sizeof(x)) +#define CLR(x) FIL(x, 0) +#define NE1(x) FIL(x, -1) +#define INF(x) FIL(x, 0x3f) +#ifndef _DEBUG +#define _DEBUG 0 +#endif // !_DEBUG +#define IFD if (_DEBUG) +typedef int64_t ll, i64; +typedef uint64_t ull, u64; +inline char getchar(int) +{ + static char buf[64 << 20], *S = buf, *T = buf; + if (S == T) T = fread(S = buf, 1, 64 << 20, stdin) + buf; + return S == T ? EOF : *S++; +} +template +inline bool read(T &x) +{ + int ch = x = 0, f = 1; + while (!isdigit(ch = getchar())) + if (ch == EOF) + return false; + else if (ch == '-') + f = 0; + for (; isdigit(ch); ch = getchar()) x = x * 10 + ch - '0'; + return x = f ? x : -x, true; +} +template +inline bool read(T1 &v1, T2 &v2) { return read(v1) && read(v2); } +template +inline bool read(T1 &v1, T2 &v2, T3 &v3) { return read(v1) && read(v2) && read(v3); } +template +inline bool read(T1 &v1, T2 &v2, T3 &v3, T4 &v4) { return read(v1) && read(v2) && read(v3) && read(v4); } +template +inline bool read(T1 &v1, T2 &v2, T3 &v3, T4 &v4, T5 &v5) { return read(v1) && read(v2) && read(v3) && read(v4) && read(v5); } +inline ll gcd(ll a, ll b) +{ + for (; b; swap(a, b)) a %= b; + return a; +} +inline ll fpow(ll a, ll b, ll m) +{ + ll r = 1; + for (; b; b >>= 1, a = a * a % m) + if (b & 1) r = r * a % m; + return r; +} +const double eps = 1e-8; +inline int sgn(double x) { return x > eps ? 1 : x < -eps ? -1 : 0; } +int main() +{ + $0 + return 0; +} \ No newline at end of file