From 9e8abf771fdad84d3c89d02c57e56689e43cb1d7 Mon Sep 17 00:00:00 2001 From: Zengtudor Date: Sun, 9 Feb 2025 14:55:43 +0800 Subject: [PATCH] update --- src/2/P1962.cpp | 87 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 src/2/P1962.cpp diff --git a/src/2/P1962.cpp b/src/2/P1962.cpp new file mode 100644 index 0000000..9489bc9 --- /dev/null +++ b/src/2/P1962.cpp @@ -0,0 +1,87 @@ +#include +#include +#include +#include +#include +#include +#include + +void operator delete(void *p)noexcept{} +void operator delete(void *p,size_t size)noexcept{} +void operator delete[](void *p)noexcept{} +void operator delete[](void *p,size_t size)noexcept{} + +using ll = int64_t; + +const ll p = 1e9+7; +ll n = std::pow(2,63); + +using v2d = std::vector>; + +void setid(v2d&a,bool issimple=true){ + if(issimple){ + for(ll i=0;i(b[0].size())); + for(ll i=0;i(b[0].size())); + setid(res); + while(e){ + if(e&1)res=res*b; + b=b*b; + e/=2; + } + return res; +} + +std::ostream&operator<<(std::ostream&os,v2d const& v){ + os<<"{ "; + for(ll i=0;i>n; + if(n<=2){ + std::cout<<"1\n"; + return 0; + } + n-=2; + v2d base(2,std::vector(2)); + base[0][1]=base[1][0]=base[1][1] = 1; + base = fp(base,n); + std::cout<<(base[0][1]+base[1][1])%p<<'\n'<