library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub beet-aizu/library

:heavy_check_mark: polynomial/interpolate.cpp

Depends on

Verified with

Code

#ifndef call_from_test
#include <bits/stdc++.h>
using namespace std;

#define call_from_test
#include "../combinatorics/enumeration.cpp"
#include "../formalpowerseries/base.cpp"
#include "../formalpowerseries/inv.cpp"
#include "../formalpowerseries/div.cpp"
#include "../formalpowerseries/mod.cpp"
#include "../formalpowerseries/diff.cpp"
#include "multieval.cpp"
#undef call_from_test

#endif
//BEGIN CUT HERE
// O(N log^2 N)
template<typename T>
struct Interpolate : MultiEval<T>{
  using super = MultiEval<T>;
  using typename super::Poly;
  using super::super, super::FPS, super::mem;

  Poly interpolate(const vector<T> &xs,const vector<T> &ws,int l,int r){
    if(l+1==r) return Poly({ws[l]});
    int m=(l+r)>>1;
    return FPS.add(FPS.mul(interpolate(xs,ws,l,m),mem[{m,r}]),
                   FPS.mul(interpolate(xs,ws,m,r),mem[{l,m}]));
  }

  vector<T> build(const vector<T> &xs,const vector<T> &ys){
    int n=xs.size();
    mem.clear();
    super::dfs(xs,0,n);
    auto ls=FPS.diff(mem[{0,n}]);
    ls.resize(n,T(0));
    vector<T> ws(n);
    super::multi_eval(ls,ws,0,n);
    for(int i=0;i<n;i++) ws[i]=ys[i]/ws[i];
    return interpolate(xs,ws,0,n);
  }
};
//END CUT HERE
#ifndef call_from_test
signed main(){
  return 0;
}
#endif
Traceback (most recent call last):
  File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/documentation/build.py", line 71, in _render_source_code_stat
    bundled_code = language.bundle(stat.path, basedir=basedir, options={'include_paths': [basedir]}).decode()
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/cplusplus.py", line 187, in bundle
    bundler.update(path)
  File "/opt/hostedtoolcache/Python/3.11.3/x64/lib/python3.11/site-packages/onlinejudge_verify/languages/cplusplus_bundle.py", line 400, in update
    raise BundleErrorAt(path, i + 1, "unable to process #include in #if / #ifdef / #ifndef other than include guards")
onlinejudge_verify.languages.cplusplus_bundle.BundleErrorAt: polynomial/interpolate.cpp: line 6: unable to process #include in #if / #ifdef / #ifndef other than include guards
Back to top page