Skip to content

Latest commit

Β 

History

History
125 lines (96 loc) Β· 4.11 KB

File metadata and controls

125 lines (96 loc) Β· 4.11 KB

Snippet For PS (C++ & VSCode)

OS별 μ„€μΉ˜λ²•

WINDOWS

  1. Win + R을 톡해 싀행창을 μ—΄μ–΄μ£Όμ„Έμš”.

  2. %appdata%λ₯Ό μž…λ ₯ν•˜κ³  μ—”ν„°λ₯Ό λˆŒλŸ¬μ£Όμ„Έμš”.

  3. Code > User > snippets에 μžˆλŠ” cpp.json을 이 ν”„λ‘œμ νŠΈμ— μžˆλŠ” cpp.json으둜 κ΅μ²΄ν•΄μ£Όμ„Έμš”.

  4. 이제 VSCodeμ—μ„œ ν‚€μ›Œλ“œλ₯Ό μž…λ ₯ν•˜λ©΄ ν…œν”Œλ¦Ώμ„ μ“Έ 수 μžˆμŠ΅λ‹ˆλ‹€.

μŠ€λ‹ˆνŽ« λͺ©λ‘

헀더

  • hd(λ―Έμ™„) : ν—€λ”μž…λ‹ˆλ‹€. μžμ‹ μ˜ ν•Έλ“€, κΉƒν—™ 핸듀을 적을 수 있으며, bits/stdc++.h 헀더λ₯Ό include ν•˜κ³  기본적인 λ³€μˆ˜λ“€μ„ μ„€μ •ν•©λ‹ˆλ‹€. (amod : AtCoderμ—μ„œ 자주 μ‚¬μš©ν•˜λŠ” κ°’(998244353), mod : 10**9+7)

debugλ₯Ό μ΄μš©ν•˜μ—¬ λ‘œμ»¬μ—μ„œλŠ” 좜λ ₯λ˜μ§€λ§Œ λ°±μ€€ 채점 ν™˜κ²½μ—μ„œλŠ” 좜λ ₯이 μ•ˆλ˜κ²Œ ν•  수 μžˆμŠ΅λ‹ˆλ‹€. (debug << "hello world!";)

(Thanks to junah201)

클래슀

  • mkmodulo : Modulo μ—°μ‚° ν΄λž˜μŠ€μž…λ‹ˆλ‹€. 사칙연산, powμ—°μ‚°κ³Ό λͺ¨λ“ˆλŸ¬ κ³±μ…ˆμ—­μ›μ„ μ§€μ›ν•©λ‹ˆλ‹€. λ³€μˆ˜λŠ” Modulo<P> aν˜•μ‹μœΌλ‘œ μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ•Œ, P (int)λŠ” λ‚˜λˆ„λŠ” 수λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. (Thanks to invrtd-h, justiceHui)

CODE

int main() {
    fastio();
    Modulo<998244353> a = 100, b = 300, c = 2000000000; 
    cout << (a*c) << '\n'; // (a*c) mod P(=998244353)
    a *= c; 
    cout << a << '\n'; // (a*c) mod P
    a = 100;
    c += c;
    cout << c << '\n'; (c+c) mod P
    cout << c*2-a << '\n'; // (c*2-a) mod P
    cout << a*b*c << '\n'; // (a*b*c) mod P
    cout << a.pow(2000000000000) << '\n'; // (a**m) mod P
    cout << a.inverse(); // a의 λͺ¨λ“ˆλŸ¬ κ³±μ…ˆ 역원
}

OUTPUT

351129400
351129400
7022588
14045076
48081517
747468444
828542813

ν•¨μˆ˜

  • fib : 기본적인 ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ˜ 값을 1ν•­λΆ€ν„° 1 000 000ν•­κΉŒμ§€ κ΅¬ν•΄λƒ…λ‹ˆλ‹€. O(N).

  • ssum : C++μ—μ„œμ˜ 큰 수 λ§μ…ˆμ„ λ¬Έμžμ—΄λ‘œ κ΅¬ν•΄μ€λ‹ˆλ‹€. ssum(string, string)으둜 ν˜ΈμΆœν•˜λ©΄ string이 returnλ©λ‹ˆλ‹€. (https://www.acmicpc.net/problem/15353)

CODE

int main() {
    string A, B;
    cin >> A >> B;
    cout << ssum(A, B);
}

INPUT

32647624863284683726783647836247682364783246 2364783268463284674678326478236486237864832687

OUTPUT

2397430893326569358405110126072733920229615933
  • mers_p : 2**n-1꼴의 μ •μˆ˜κ°€ μ†Œμˆ˜μΈμ§€ νŒλ³„ν•©λ‹ˆλ‹€. mers_p(int)둜 ν˜ΈμΆœν•˜λ©΄ μ†Œμˆ˜μΈ 경우 true(1), μ•„λ‹Œ 경우 false(0)이 returnλ©λ‹ˆλ‹€. μ‹œκ°„λ³΅μž‘λ„λŠ” O(sqrt(int))μž…λ‹ˆλ‹€. μ½”λ“œλŠ” ncodeλ‹˜μ˜ λΈ”λ‘œκ·Έλ₯Ό μ°Έκ³ ν–ˆμŠ΅λ‹ˆλ‹€.

  • geom : λ‹€μŒ 문단을 μ°Έμ‘°ν•΄ μ£Όμ„Έμš”.

geom (μˆ˜μ •μ˜ˆμ •)
  • Point, Point_d : 각각 μ •μˆ˜ν˜• μ’Œν‘œμ™€ μ‹€μˆ˜(double)ν˜• μ’Œν‘œλ₯Ό μ €μž₯ν•˜λŠ” κ΅¬μ‘°μ²΄μž…λ‹ˆλ‹€.

  • pipo(pair<int, int>), pipo_d(pair<double, double>) : μ°¨λ‘€λŒ€λ‘œ pairν˜• μ’Œν‘œλ₯Ό Point, Point_d ꡬ쑰체둜 λ³€ν™˜ν•΄μ„œ return ν•©λ‹ˆλ‹€.

  • dist(Point A, Point B), dist_d(Point_d A, Point_d B) : μ°¨λ‘€λŒ€λ‘œ μ •μˆ˜, μ‹€μˆ˜ν˜• μ’Œν‘œλ₯Ό μ €μž₯ν•œ ꡬ쑰체 2개λ₯Ό λ°›μ•„ 두 μ κ°„μ˜ μœ ν΄λ¦¬λ“œ 거리λ₯Ό return ν•©λ‹ˆλ‹€. μ΄λ•Œ, 두 ν•¨μˆ˜ λͺ¨λ‘ double을 return ν•©λ‹ˆλ‹€.

μ˜ˆμ‹œ

CODE

int main() {
    pair<int, int> X = {0, 0};
    pair<int, int> Y = {3, 5};
    pair<double, double> Xd = {1.0, 1.0};
    pair<double, double> Yd = {4.0, 7.0};
    cout << dist(pipo(X), pipo(Y)) << '\n';
    cout << dist_d(pipo_d(Xd), pipo_d(Yd)) << '\n';
}

OUTPUT

5.83095
6.7082

메인

  • tc : ν…ŒμŠ€νŠΈμΌ€μ΄μŠ€κ°€ μ£Όμ–΄μ§€λŠ” λ¬Έμ œμ—μ„œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€. (ex. CodeForces)

  • rep1 : 1쀑 λ°˜λ³΅λ¬Έμ„ 좜λ ₯ν•©λ‹ˆλ‹€.

  • rep2 : 2쀑 λ°˜λ³΅λ¬Έμ„ 좜λ ₯ν•©λ‹ˆλ‹€.

도움을 μ£Όμ‹  λΆ„λ“€