Advertisement
coffeebeforecode

C++ CP Snippet

Mar 19th, 2023
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.15 KB | None | 0 0
  1. {
  2. "Default C++ CP template": {
  3. "prefix": "default",
  4. "body": [
  5. "#pragma GCC optimize(\"Ofast\")",
  6. "#pragma GCC target(\"sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,fma\")",
  7. "#pragma GCC optimize(\"unroll-loops\")",
  8. "#include <bits/stdc++.h> ",
  9. "#include <complex>",
  10. "#include <queue>",
  11. "#include <set>",
  12. "#include <unordered_set>",
  13. "#include <list>",
  14. "#include <chrono>",
  15. "#include <random>",
  16. "#include <iostream>",
  17. "#include <algorithm>",
  18. "#include <cmath>",
  19. "#include <string>",
  20. "#include <vector>",
  21. "#include <map>",
  22. "#include <unordered_map>",
  23. "#include <stack>",
  24. "#include <iomanip>",
  25. "#include <fstream>",
  26. " ",
  27. "using namespace std;",
  28. " ",
  29. "typedef long long ll;",
  30. "typedef long double ld;",
  31. "typedef pair<int,int> p32;",
  32. "typedef pair<ll,ll> p64;",
  33. "typedef pair<double,double> pdd;",
  34. "typedef vector<ll> v64;",
  35. "typedef vector<int> v32;",
  36. "typedef vector<vector<int> > vv32;",
  37. "typedef vector<vector<ll> > vv64;",
  38. "typedef vector<vector<p64> > vvp64;",
  39. "typedef vector<p64> vp64;",
  40. "typedef vector<p32> vp32;",
  41. "ll MOD = 998244353;",
  42. "double eps = 1e-12;",
  43. "#define forn(i,e) for(ll i = 0; i < e; i++)",
  44. "#define forsn(i,s,e) for(ll i = s; i < e; i++)",
  45. "#define rforn(i,s) for(ll i = s; i >= 0; i--)",
  46. "#define rforsn(i,s,e) for(ll i = s; i >= e; i--)",
  47. "#define ln \"\\n\"",
  48. "#define dbg(x) cout<<#x<<\" = \"<<x<<ln",
  49. "#define mp make_pair",
  50. "#define pb push_back",
  51. "#define fi first",
  52. "#define se second",
  53. "#define INF 2e18",
  54. "#define fast_cin() ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)",
  55. "#define all(x) (x).begin(), (x).end()",
  56. "#define sz(x) ((ll)(x).size())",
  57. " ",
  58. "",
  59. "void solve(){",
  60. " ",
  61. "}",
  62. " ",
  63. "int main()",
  64. "{",
  65. " fast_cin();",
  66. " ll t;",
  67. " cin >> t;",
  68. " for(int it=1;it<=t;it++) {",
  69. " //cout << \"Case #\" << it+1 << \": \";",
  70. " solve();",
  71. " }",
  72. " return 0;",
  73. "}"
  74. ],
  75. "description": "Default C++ CP template"
  76. },
  77.  
  78. "Fast Fourier Transform":{
  79. "prefix" : "fft",
  80. "body": [
  81. "void fft(vector<cd> & a, bool invert){",
  82. " int n = a.size();",
  83. "",
  84. " for (int i = 1, j=0; i < n; i++ ){",
  85. " int bit = n >> 1;",
  86. " for (; j & bit; bit >>= 1){",
  87. " j ^= bit;",
  88. " }",
  89. " j ^= bit;",
  90. "",
  91. " if (i < j){",
  92. " swap(a[i], a[j]);",
  93. " }",
  94. " }",
  95. "",
  96. " for (int len = 2; len <= n; len <<= 1){",
  97. " double ang = 2 * PI / len * (invert ? -1 : 1);",
  98. " cd wlen(cos(ang), sin(ang));",
  99. " for(int i=0; i < n; i+=len ){",
  100. " cd w(1);",
  101. " for (int j = 0; j < len / 2; j++){",
  102. " cd u = a[i+j], v = a[i+j+len/2] * w;",
  103. " a[i+j] = u + v;",
  104. " a[i+j+len/2] = u - v;",
  105. " w *= wlen;",
  106. " }",
  107. " }",
  108. " }",
  109. "",
  110. " if (invert){",
  111. " for (cd & x : a){",
  112. " x /= n;",
  113. " }",
  114. " }",
  115. "}"
  116. ],
  117. "description": "FFT"
  118.  
  119. }
  120. }
  121.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement