This documentation is automatically generated by online-judge-tools/verification-helper
View the Project on GitHub ningenMe/compro-library
/* * @title MonoidRangeGcdPointUpdate - [区間gcd, 点更新] * @docs md/operator/monoid/MonoidRangeGcdPointUpdate.md */ template<class T> struct MonoidRangeGcdPointUpdate { using TypeNode = T; inline static constexpr TypeNode unit_node = 0; inline static constexpr TypeNode func_fold(TypeNode l,TypeNode r){return Prime::gcd(l,r);} inline static constexpr TypeNode func_operate(TypeNode l,TypeNode r){return r;} inline static constexpr bool func_check(TypeNode nodeVal,TypeNode var){return var == nodeVal;} };
#line 1 "lib/99-operator/monoid/MonoidRangeGcdPointUpdate.cpp" /* * @title MonoidRangeGcdPointUpdate - [区間gcd, 点更新] * @docs md/operator/monoid/MonoidRangeGcdPointUpdate.md */ template<class T> struct MonoidRangeGcdPointUpdate { using TypeNode = T; inline static constexpr TypeNode unit_node = 0; inline static constexpr TypeNode func_fold(TypeNode l,TypeNode r){return Prime::gcd(l,r);} inline static constexpr TypeNode func_operate(TypeNode l,TypeNode r){return r;} inline static constexpr bool func_check(TypeNode nodeVal,TypeNode var){return var == nodeVal;} };