F.A.Q
Hand In Hand
Online Acmers
Problem Archive
Realtime Judge Status
Authors Ranklist
 
     C/C++/Java Exams     
ACM Steps
Go to Job
Contest LiveCast
ICPC@China
Best Coder beta
VIP | STD Contests
    DIY | Web-DIY beta
Author ID 
Password 
 Register new ID

View Compilation Error

0_0_38431339_3114.cpp: In function 'int main()':
0_0_38431339_3114.cpp:335:20: error: the value of 'mod' is not usable in a constant expression
  using mint = MInt<mod>;
                    ^
0_0_38431339_3114.cpp:334:13: note: 'int mod' is not const
  static int mod;
             ^
0_0_38431339_3114.cpp:335:23: error: 'mod' is not a valid template argument for type 'const int&' because object 'mod' has not external linkage
  using mint = MInt<mod>;
                       ^
0_0_38431339_3114.cpp:336:20: error: 'mint' was not declared in this scope
  using poly = Poly<mint, FFTMod<mint, double>>;
                    ^
0_0_38431339_3114.cpp:336:33: error: the value of 'mint' is not usable in a constant expression
  using poly = Poly<mint, FFTMod<mint, double>>;
                                 ^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
  using poly = Poly<mint, FFTMod<mint, double>>;
                    ^
0_0_38431339_3114.cpp:336:39: error: type/value mismatch at argument 1 in template parameter list for 'template<class Mint, class T> class FFTMod'
  using poly = Poly<mint, FFTMod<mint, double>>;
                                       ^
0_0_38431339_3114.cpp:336:39: error:   expected a type, got 'mint'
0_0_38431339_3114.cpp:336:45: error: template argument 1 is invalid
  using poly = Poly<mint, FFTMod<mint, double>>;
                                             ^
0_0_38431339_3114.cpp:336:45: error: template argument 2 is invalid
0_0_38431339_3114.cpp:340:10: error: the value of 'mint' is not usable in a constant expression
   vector<mint> fac(n + 1), ifac(n + 1);
          ^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
  using poly = Poly<mint, FFTMod<mint, double>>;
                    ^
0_0_38431339_3114.cpp:340:14: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Alloc> class std::vector'
   vector<mint> fac(n + 1), ifac(n + 1);
              ^
0_0_38431339_3114.cpp:340:14: error:   expected a type, got 'mint'
0_0_38431339_3114.cpp:340:14: error: template argument 2 is invalid
0_0_38431339_3114.cpp:340:19: error: invalid type in declaration before '(' token
   vector<mint> fac(n + 1), ifac(n + 1);
                   ^
0_0_38431339_3114.cpp:341:8: error: invalid types 'int[int]' for array subscript
   fac[0] = 1;
        ^
0_0_38431339_3114.cpp:342:21: error: invalid types 'int[int]' for array subscript
   rep(i, 1, n) fac[i] = fac[i - 1] * i;
                     ^
0_0_38431339_3114.cpp:342:34: error: invalid types 'int[int]' for array subscript
   rep(i, 1, n) fac[i] = fac[i - 1] * i;
                                  ^
0_0_38431339_3114.cpp:343:22: error: invalid types 'int[int]' for array subscript
   rep(i, 0, n) ifac[i] = mint{1} / fac[i];
                      ^
0_0_38431339_3114.cpp:343:34: error: expected primary-expression before '/' token
   rep(i, 0, n) ifac[i] = mint{1} / fac[i];
                                  ^
0_0_38431339_3114.cpp:343:40: error: 'i' was not declared in this scope
   rep(i, 0, n) ifac[i] = mint{1} / fac[i];
                                        ^
0_0_38431339_3114.cpp:345:10: error: the value of 'mint' is not usable in a constant expression
   vector<mint> fs(n + 1), as(n + 1);
          ^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
  using poly = Poly<mint, FFTMod<mint, double>>;
                    ^
0_0_38431339_3114.cpp:345:14: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Alloc> class std::vector'
   vector<mint> fs(n + 1), as(n + 1);
              ^
0_0_38431339_3114.cpp:345:14: error:   expected a type, got 'mint'
0_0_38431339_3114.cpp:345:14: error: template argument 2 is invalid
0_0_38431339_3114.cpp:345:18: error: invalid type in declaration before '(' token
   vector<mint> fs(n + 1), as(n + 1);
                  ^
0_0_38431339_3114.cpp:346:7: error: invalid types 'int[int]' for array subscript
   fs[0] = 0;
       ^
0_0_38431339_3114.cpp:347:20: error: invalid types 'int[int]' for array subscript
   rep(i, 1, n) as[i] = mint{2}.pow(1ll * i * (i - 1) / 2) / fac[i];
                    ^
0_0_38431339_3114.cpp:347:31: error: expected primary-expression before '.' token
   rep(i, 1, n) as[i] = mint{2}.pow(1ll * i * (i - 1) / 2) / fac[i];
                               ^
0_0_38431339_3114.cpp:348:22: error: the value of 'mint' is not usable in a constant expression
   CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
                      ^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
  using poly = Poly<mint, FFTMod<mint, double>>;
                    ^
0_0_38431339_3114.cpp:348:35: error: the value of 'mint' is not usable in a constant expression
   CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
                                   ^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
  using poly = Poly<mint, FFTMod<mint, double>>;
                    ^
0_0_38431339_3114.cpp:348:35: error: type/value mismatch at argument 1 in template parameter list for 'template<class Mint, class T> class FFTMod'
   CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
                                   ^
0_0_38431339_3114.cpp:348:35: error:   expected a type, got 'mint'
0_0_38431339_3114.cpp:348:61: error: 'mint' is not a type
   CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
                                                             ^
0_0_38431339_3114.cpp: In lambda function:
0_0_38431339_3114.cpp:348:82: error: invalid types 'int[int]' for array subscript
   CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
                                                                                  ^
0_0_38431339_3114.cpp: In function 'int main()':
0_0_38431339_3114.cpp:348:94: error: no matching function for call to 'CDQDivdeAndConquer(int&, int&, main()::<lambda(int, int)>)'
   CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
                                                                                              ^
0_0_38431339_3114.cpp:348:94: note: candidate is:
0_0_38431339_3114.cpp:310:6: note: template<class T, class FFT> void CDQDivdeAndConquer(std::vector<_RealType>&, const std::vector<_RealType>&, const std::function<T(int, const T&)>&)
 void CDQDivdeAndConquer(vector<T> &as, const vector<T> &bs, const function<T(int, const T&)> &f) {
      ^
0_0_38431339_3114.cpp:310:6: note:   template argument deduction/substitution failed:
0_0_38431339_3114.cpp:348:94: error: template argument 2 is invalid
   CDQDivdeAndConquer<mint, FFTMod<mint>>(fs, as, [&](int i, mint x) { return as[i] * i - x; });
                                                                                              ^
0_0_38431339_3114.cpp:349:20: error: invalid types 'int[int]' for array subscript
   rep(i, 1, n) fs[i] /= i;
                    ^
0_0_38431339_3114.cpp:351:30: error: 'mint' does not name a type
   auto solve = [&](int g) -> mint {
                              ^
0_0_38431339_3114.cpp: In lambda function:
0_0_38431339_3114.cpp:352:4: error: 'poly' was not declared in this scope
    poly rs(n / g + 1);
    ^
0_0_38431339_3114.cpp:354:5: error: 'rs' was not declared in this scope
     rs[i / g] = fs[i];
     ^
0_0_38431339_3114.cpp:354:21: error: invalid types 'int[int]' for array subscript
     rs[i / g] = fs[i];
                     ^
0_0_38431339_3114.cpp:356:11: error: 'rs' was not declared in this scope
    return rs.exp()[n / g] * fac[n];
           ^
0_0_38431339_3114.cpp:356:34: error: invalid types 'int[int]' for array subscript
    return rs.exp()[n / g] * fac[n];
                                  ^
0_0_38431339_3114.cpp: In function 'int main()':
0_0_38431339_3114.cpp:359:10: error: the value of 'mint' is not usable in a constant expression
   vector<mint> ans(n + 1);
          ^
0_0_38431339_3114.cpp:336:20: note: 'mint' was not declared 'constexpr'
  using poly = Poly<mint, FFTMod<mint, double>>;
                    ^
0_0_38431339_3114.cpp:359:14: error: type/value mismatch at argument 1 in template parameter list for 'template<class _Tp, class _Alloc> class std::vector'
   vector<mint> ans(n + 1);
              ^
0_0_38431339_3114.cpp:359:14: error:   expected a type, got 'mint'
0_0_38431339_3114.cpp:359:14: error: template argument 2 is invalid
0_0_38431339_3114.cpp:359:19: error: invalid type in declaration before '(' token
   vector<mint> ans(n + 1);
                   ^
0_0_38431339_3114.cpp:360:37: error: invalid types 'int[int]' for array subscript
   rep(i, 1, n) if (n % i == 0) ans[i] = solve(i);
                                     ^
0_0_38431339_3114.cpp:361:60: error: invalid types 'int[int]' for array subscript
   revrep(i, 1, n) for (int j = i * 2; j <= n; j += i) ans[i] -= ans[j];
                                                            ^
0_0_38431339_3114.cpp:361:70: error: invalid types 'int[int]' for array subscript
   revrep(i, 1, n) for (int j = i * 2; j <= n; j += i) ans[i] -= ans[j];
                                                                      ^
0_0_38431339_3114.cpp:362:8: error: expected ';' before 'res'
   mint res = 0;
        ^
0_0_38431339_3114.cpp:363:16: error: 'res' was not declared in th


Hangzhou Dianzi University Online Judge 3.0
Copyright © 2005-2025 HDU ACM Team. All Rights Reserved.
Designer & Developer : Wang Rongtao LinLe GaoJie GanLu
Total 0.001000(s) query 1, Server time : 2025-02-18 16:34:25, Gzip enabled