From 863704e7522883a192dfbef6a681ba7138b05760 Mon Sep 17 00:00:00 2001 From: unclezhou <91417040+unclezhou486@users.noreply.github.com> Date: Wed, 7 Aug 2024 13:07:32 +0800 Subject: [PATCH] Add files via upload --- template-LaTeX-ECNU-F0RE1GNERS-main/README.md | 6 + .../assets/0_to_latex.cpp | 50 +++ .../assets/AC-Automaton.cpp | 73 ++++ .../assets/BarrettReduction.cpp | 8 + .../assets/Binary heap.cpp | 66 ++++ .../assets/CSC_dij.cpp | 70 ++++ .../assets/CSC_dp.cpp | 61 +++ .../assets/Dinic.cpp | 126 ++++++ .../assets/EXKMP_z-Fuction.cpp | 60 +++ .../assets/Exgcd.cpp | 20 + .../assets/FFT.cpp | 112 ++++++ .../assets/FHQ_treap.cpp | 168 ++++++++ .../assets/FastRead.cpp | 7 + .../assets/Inv_FFT.cpp | 95 +++++ .../assets/Inv_NTT.cpp | 85 +++++ .../assets/Left partial tree.cpp | 78 ++++ .../assets/Linklist.cpp | 112 ++++++ .../assets/Linklist_template.cpp | 104 +++++ .../assets/List.cpp | 236 ++++++++++++ .../assets/Lucas.cpp | 60 +++ .../assets/NTT.cpp | 67 ++++ .../assets/PDSU.cpp | 93 +++++ .../assets/RandomIncremeMethod.cpp | 75 ++++ .../assets/Seg_treap.cpp | 106 ++++++ .../assets/TCS.cpp | 138 +++++++ .../assets/VirtualTree.cpp | 116 ++++++ .../assets/a.out | Bin 0 -> 52032 bytes .../assets/bsgs.cpp | 27 ++ .../assets/dsu_on_tree.cpp | 68 ++++ .../assets/lucas..cpp | 36 ++ .../assets/none_rot_treap.cpp | 163 ++++++++ .../assets/sam.png | Bin 0 -> 125332 bytes .../assets/splay.cpp | 174 +++++++++ .../assets/st.cpp | 34 ++ .../cheatsheat.tex | 358 ++++++++++++++++++ .../contents.tex | 126 ++++++ template-LaTeX-ECNU-F0RE1GNERS-main/main.tex | 184 +++++++++ 37 files changed, 3362 insertions(+) create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/README.md create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/0_to_latex.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/AC-Automaton.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/BarrettReduction.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Binary heap.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/CSC_dij.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/CSC_dp.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Dinic.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/EXKMP_z-Fuction.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Exgcd.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/FFT.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/FHQ_treap.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/FastRead.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Inv_FFT.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Inv_NTT.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Left partial tree.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Linklist.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Linklist_template.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/List.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Lucas.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/NTT.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/PDSU.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/RandomIncremeMethod.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/Seg_treap.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/TCS.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/VirtualTree.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/a.out create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/bsgs.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/dsu_on_tree.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/lucas..cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/none_rot_treap.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/sam.png create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/splay.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/assets/st.cpp create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/cheatsheat.tex create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/contents.tex create mode 100644 template-LaTeX-ECNU-F0RE1GNERS-main/main.tex diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/README.md b/template-LaTeX-ECNU-F0RE1GNERS-main/README.md new file mode 100644 index 0000000..5c6efc6 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/README.md @@ -0,0 +1,6 @@ +# template-LaTeX-ECNU-F0RE1GNERS +Build Code Library with LaTeX, base on [ECNU F0RE1GNERS template](https://github.com/F0RE1GNERS/template/tree/master). + +[PDF 下载](https://github.com/XCPCIO/template-LaTeX-ECNU-F0RE1GNERS/raw/gh-pages/template.pdf) + +[使用指北](https://xcpcio.com/code-library/code-library-build/#latex-ecnu-f0re1gners) diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/0_to_latex.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/0_to_latex.cpp new file mode 100644 index 0000000..5e22e32 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/0_to_latex.cpp @@ -0,0 +1,50 @@ +#include +#include +#include +#include + +namespace fs = std::filesystem; + +// 仅在下划线前面添加反斜杠进行转义 +std::string escape_filename(const std::string& filename) { + std::string safe_filename = filename; + size_t pos = 0; + while ((pos = safe_filename.find('_', pos)) != std::string::npos) { + safe_filename.insert(pos, "\\"); // 在下划线前面插入反斜杠 + pos += 2; // 更新位置,跳过新插入的字符 + } + return safe_filename; +} + +int main() { + const std::string output_filename = "listings.tex"; + std::ofstream outfile(output_filename); + + if (!outfile.is_open()) { + std::cerr << "Failed to open output file." << std::endl; + return 1; + } + + outfile << "% Generated LaTeX code for C++ file listings" << std::endl; + outfile << "\\section{All}\n"; + for (const auto& entry : fs::directory_iterator(".")) { + const auto& path = entry.path(); + if (entry.is_regular_file() && path.extension() == ".cpp") { + std::string filename = path.filename().string(); + std::string basename = escape_filename(filename); // 转义文件名 + + // 构造子章节标题,这里简单地使用转义后的文件名 + std::string subsection_title = basename.substr(0, basename.size() - 4); + + // 输出到LaTeX文件 + + outfile << "\\subsection{" << subsection_title << "}\n"; + outfile << "\\raggedbottom\\lstinputlisting[style=cpp]{assets/" << basename << "}\n"; // 假设.cpp文件在assets目录下 + outfile << "\\hrulefill\n\n"; + } + } + + outfile.close(); + std::cout << "LaTeX listings generated in " << output_filename << std::endl; + return 0; +} diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/AC-Automaton.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/AC-Automaton.cpp new file mode 100644 index 0000000..a75aa49 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/AC-Automaton.cpp @@ -0,0 +1,73 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +using namespace std; +const int N=1e6+5; +const int M=1e8+5; +const int INF=1e9; +const int p=998244353; +const double DARW=0.97; +int tree[N][30],bh,f[N],fail[N],ff[N],lst_[N]; +queueq; +void insert(string s){ + int p=0; + for(int i=0;i>n; + for(int i=1;i<=n;i++){ + string ss; + cin>>ss; + insert(ss); + } + build(); + string t; + cin>>t; + int ans=0; + for(int i=0,j=0;i>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/BarrettReduction.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/BarrettReduction.cpp new file mode 100644 index 0000000..4d66dc8 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/BarrettReduction.cpp @@ -0,0 +1,8 @@ +struct Mod +{ + long long m, p; + void init(int pp) { m = ((__int128)1 << 64) / pp; p = pp; } + long long operator ()(long long x){ + return x - ((__int128(x) * m) >> 64) * p; + } +} mod; \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Binary heap.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Binary heap.cpp new file mode 100644 index 0000000..21d890b --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Binary heap.cpp @@ -0,0 +1,66 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +using namespace std; +const int N=1e6+5; +const int M=1e8+5; +const int INF=1e9; +const int p=998244353; +const double DARW=0.97; +int n,a[N]; +void up(int x){ + while(x/2&&a[x]=a[x])break; + swap(a[t],a[x]); + x=t; + } +} +void build(){ + for(int i=n;i>=1;i--)down(i); +} +void solve(){ + int q; + cin>>q; + while(q--){ + int op,x; + cin>>op; + if(op==1){ + cin>>x; + a[++n]=x; + up(n); + }else if(op==2)cout<>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/CSC_dij.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/CSC_dij.cpp new file mode 100644 index 0000000..7bff68e --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/CSC_dij.cpp @@ -0,0 +1,70 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +#define pii pair +using namespace std; +const int N=2e5+5; +const int M=5e6+5; +const int INF=1e9; +//const int p=998244353; +const int MOD=1e9+7; +const double DARW=0.97; +const double eps=1e-12; +int ans[N],f[N]; +vectort[N]; +struct node{int x,val;bool operator<(const node& a)const{return val>a.val;}}; +struct edge{int v,w;}; +vectore[N]; +priority_queueq; +void dij(){ + while(q.size()&&f[q.top().x])q.pop(); + if(q.empty())return; + node x=q.top(); + q.pop(); + f[x.x]=1; + for(auto u:e[x.x]){ + if(u.w+ans[x.x]>h>>a>>b>>c; + if(a=ans[i]) + as+=(h-ans[i])/c+1; + } + cout<>t; + while(t--)solve(); +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/CSC_dp.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/CSC_dp.cpp new file mode 100644 index 0000000..7313c0c --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/CSC_dp.cpp @@ -0,0 +1,61 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +#define pii pair +using namespace std; +const int N=5e5+5; +const int M=5e6+5; +const int INF=1e9; +//const int p=998244353; +const int MOD=1e9+7; +const double DARW=0.97; +const double eps=1e-12; +int dp[N],a[20]; +int gcd(int a,int b){ + if(!b)return a; + return gcd(b,a%b); +} +void solve(){ + int n,l,r; + cin>>n>>l>>r; + for(int i=1;i<=n;i++)cin>>a[i]; + for(int i=1;i=dp[i])ans+=(r-dp[i])/a[1]+1; + if(l>dp[i])ans-=(l-1-dp[i])/a[1]+1; + } + cout<>t; + while(t--)solve(); +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Dinic.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Dinic.cpp new file mode 100644 index 0000000..7803d7a --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Dinic.cpp @@ -0,0 +1,126 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +#define pii pair +using namespace std; +const int N=2e3+5; +const int M=1e5+5; +const int INF=2e9; +//const int p=998244353; +const int MOD=1e9+7; +const double DARW=0.97; +int tot,m,n,s,t; +struct edge{ + int v,w,nxt; +}e[N<<2]; +int head[N],a[N],b[N],vis[N],d[N]; +setans; +void add(int u,int v,int w){ + e[tot].v=v; + e[tot].w=w; + e[tot].nxt=head[u]; + head[u]=tot++; +} +int bfs(){ + ans.clear(); + memset(vis,0,sizeof(vis)); + queueq; + q.push(s); + vis[s]=1; + d[s]=0; + while(!q.empty()){ + int x=q.front(); + q.pop(); + for(int i=head[x];i!=-1;i=e[i].nxt){ + if(vis[e[i].v]||e[i].w==0)continue; + ans.insert(e[i].v); + d[e[i].v]=d[x]+1; + vis[e[i].v]=1; + q.push(e[i].v); + } + } + //cout<0){ + e[i].w-=f; + e[i^1].w+=f; + a-=f; + flow+=f; + if(a==0)break; + } + } + return flow; +} +int Dinic(){ + int flow=0; + while(bfs()){ + flow+=dfs(s,INF); + } + return flow; +} +void solve(){ + cin>>m>>n; + int as=0;s=0,t=n+m+1; + memset(head,-1,sizeof(head)); + string str; + stringstream ss; + for(int i=1;i<=m;i++){ + cin>>a[i]; + as+=a[i]; + add(0,i,a[i]); + add(i,0,0); + ss.clear(); + getline(cin,str); + ss<>x){ + //cout<>b[i]; + add(i+m,n+m+1,b[i]); + add(n+m+1,i+m,0); + } + as-=Dinic(); + vectorans1,ans2; + for(auto u:ans){ + if(u<=m)ans1.push_back(u); + else ans2.push_back(u-m); + } + for(auto u:ans1)cout<>t; + while(tt--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/EXKMP_z-Fuction.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/EXKMP_z-Fuction.cpp new file mode 100644 index 0000000..2278b65 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/EXKMP_z-Fuction.cpp @@ -0,0 +1,60 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +using namespace std; +const int N=2e7+5; +const int M=1e8+5; +const int INF=1e9; +//const int p=998244353; +const int MOD=1e9+7; +const double DARW=0.97; +int z[N],p[N]; +void solve(){ + string a,b; + cin>>a>>b; + b=" "+b; + a=" "+a; + int ansz=b.length(),ansp=0; + for(int l=1,r=1,i=2;ir)r=i+z[i]-1,l=i; + } + //cout<r)r=i+p[i]-1,l=i; + } + ansp^=i*(p[i]+1); + } + cout<>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Exgcd.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Exgcd.cpp new file mode 100644 index 0000000..26fa55c --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Exgcd.cpp @@ -0,0 +1,20 @@ +#include +#include +#define ll long long +using namespace std; +const int N=3e6 +5; +ll inv[N]; +void exgcd(ll a,ll b,ll &x,ll &y){ + if(!b)x=1,y=0; + else exgcd(b,a%b,y,x),y-=a/b*x; +} +int main(){ + ll n,p; + cin>>n>>p;inv[1]=1; + for(ll i=2;i<=n;i++){ + inv[i]=(((-p/i)*inv[p%i])%p+p)%p; + } + for(int i=1;i<=n;i++){ + cout< +#define int long long +#define double long double +using namespace std; +const double PI=acos(-1); +const int N=5e6+5; +namespace Poly{ + int len,Lim=1,Alen,Blen,rev[N],ans[N],p; + void setP(int x){p=x;} + struct Complex{ + double r,i; + Complex(){r=0,i=0;} + Complex(double real,double imag):r(real),i(imag){} + }; + inline Complex operator +(Complex A,Complex B){return Complex(A.r+B.r,A.i+B.i);} + inline Complex operator -(Complex A,Complex B){return Complex(A.r-B.r,A.i-B.i);} + inline Complex operator *(Complex A,Complex B){return Complex(A.r*B.r-A.i*B.i,A.r*B.i+A.i*B.r);} + inline void init(int Alen,int Blen){ + while(Lim<=Alen+Blen)Lim<<=1,++len; + for(int i=0;i>1]>>1)|((i&1)<<(len-1)); + } + inline void FFT(vector& a,int type){ + for(int i=0;i mul(vector f,vector g){ + int lf=f.size(),lg=g.size(); + init(lf,lg); + f.resize(Lim),g.resize(Lim); + vector h(Lim); + FFT(f,1);FFT(g,1); + for(int i=0;i mul(vector f,vector g){ + int lf=f.size(),lg=g.size(); + vectorff(lf); + vectorgg(lg); + for(int i=0;i hh=mul(ff,gg); + vector h(lf+lg-1); + for(int i=0;i pmul(vector f,vector g){ + int lf=f.size(),lg=g.size(); + init(lf,lg); + f.resize(Lim),g.resize(Lim); + vector v1(Lim),v2(Lim),v3(Lim),v4(Lim),h1(Lim),h2(Lim),h3(Lim); + for(int i=0;i>15; + v2[i].r=f[i]&((1<<15)-1); + v3[i].r=g[i]>>15; + v4[i].r=g[i]&((1<<15)-1); + } + FFT(v1,1);FFT(v2,1);FFT(v3,1);FFT(v4,1); + for(int i=0;i h(lf+lg-1); + for(int i=0,w1,w2,w3;i>n>>m>>p; + Poly::setP(p); + vectorA(n+1); + vectorB(m+1); + for(int i=0;i<=n;i++)cin>>A[i]; + for(int i=0;i<=m;i++)cin>>B[i]; + vectorh=Poly::pmul(A,B); + for(int i=0;i<=n+m;i++)cout<>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/FHQ_treap.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/FHQ_treap.cpp new file mode 100644 index 0000000..8974c7b --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/FHQ_treap.cpp @@ -0,0 +1,168 @@ +#include +#define int long long +const int N=1e5+5; +using namespace std; + +struct Node{ + Node *ch[2]; + int val,prio; + int cnt; + int siz; + Node(int val):val(val),cnt(1),siz(1){ + ch[0]=ch[1]=nullptr; + prio=rand(); + } + Node(Node *node){ + val=node->val,prio=node->prio,cnt=node->cnt,siz=node->siz; + } + inline void upd_siz(){ + siz=cnt; + if(ch[0]!=nullptr)siz+=ch[0]->siz; + if(ch[1]!=nullptr)siz+=ch[1]->siz; + } +}; +struct none_rot_treap{ +#define _3 second.second +#define _2 second.first + vectorrt; + none_rot_treap(){rt.push_back(nullptr);} + pair split(Node* cur,int key){ + if(cur==nullptr)return {nullptr,nullptr}; + if(cur->val<=key){ + auto temp=split(cur->ch[1],key); + cur->ch[1]=temp.first; + cur->upd_siz(); + return {cur,temp.second}; + }else{ + auto temp=split(cur->ch[0],key); + cur->ch[0]=temp.second; + cur->upd_siz(); + return {temp.first,cur}; + } + } + tuplesplit_by_rk(Node* cur,int rk){ + if(cur==nullptr)return {nullptr,nullptr,nullptr}; + int ls_siz=cur->ch[0]==nullptr?0:cur->ch[0]->siz; + if(rk<=ls_siz){ + Node *l,*mid,*r; + tie(l,mid,r)=split_by_rk(cur->ch[0],rk); + cur->ch[0]=r; + cur->upd_siz(); + return {l,mid,cur}; + }else if(rk<=ls_siz+cur->cnt){ + Node *lt=cur->ch[0]; + Node *rt=cur->ch[1]; + cur->ch[0]=cur->ch[1]=nullptr; + return {lt,cur,rt}; + }else{ + Node *l,*mid,*r; + tie(l,mid,r)=split_by_rk(cur->ch[1],rk-ls_siz-cur->cnt); + cur->ch[1]=l; + cur->upd_siz(); + return {cur,mid,r}; + } + } + Node* merge(Node* u,Node* v){ + if(u==nullptr&&v==nullptr)return nullptr; + if(u!=nullptr&&v==nullptr)return u; + if(v!=nullptr&&u==nullptr)return v; + if(u->prioprio){ + Node* temp=new Node(u); + temp->ch[0]=u->ch[0]; + temp->ch[1]=merge(u->ch[1],v); + temp->upd_siz(); + return temp; + }else{ + Node* temp=new Node(v); + temp->ch[1]=v->ch[1]; + temp->ch[0]=merge(u,v->ch[0]); + temp->upd_siz(); + return temp; + } + } + void insert(int val){ + auto temp=split(root,val); + auto l_tr=split(temp.first,val-1); + Node *new_node; + if(l_tr.second==nullptr){ + new_node=new Node(val); + }else{ + l_tr.second->cnt++; + l_tr.second->upd_siz(); + } + Node *l_tr_combined=merge(l_tr.first,l_tr.second==nullptr?new_node:l_tr.second); + root=merge(l_tr_combined,temp.second); + } + void del(int val){ + auto temp=split(root,val); + auto l_tr=split(temp.first,val-1); + if(l_tr.second->cnt>1){ + l_tr.second->cnt--; + l_tr.second->upd_siz(); + l_tr.first=merge(l_tr.first,l_tr.second); + }else{ + if(temp.first==l_tr.second){ + temp.first=nullptr; + } + delete l_tr.second; + l_tr.second=nullptr; + } + root=merge(l_tr.first,temp.second); + } + int qrank_by_val(Node *cur,int val){ + auto temp=split(cur,val-1); + int ret=(temp.first==nullptr?0:temp.first->siz)+1; + root=merge(temp.first,temp.second); + return ret; + } + int qval_by_rank(Node *cur,int rk){ + Node *l,*mid,*r; + tie(l,mid,r)=split_by_rk(cur,rk); + int ret=mid->val; + root=merge(merge(l,mid),r); + return ret; + } + int qprev(int val){ + auto temp=split(root,val-1); + int ret=qval_by_rank(temp.first,temp.first->siz); + root=merge(temp.first,temp.second); + return ret; + } + int qnex(int val){ + auto temp=split(root,val); + int ret=qval_by_rank(temp.second,1); + root=merge(temp.first,temp.second); + return ret; + } +}; +none_rot_treap tr; +int a[N]; +void solve(){ + srand(time(0)); + int n,m,ans=0; + cin>>n>>m; + for(int i=1;i<=n;i++)cin>>a[i],tr.insert(a[i]); + int lst=0; + while(m--){ + int op,x; + cin>>op>>x; + x^=lst; + if(op==1)tr.insert(x); + else if(op==2)tr.del(x); + else if(op==3)ans^=(lst=tr.qrank_by_val(tr.root,x)); + else if(op==4)ans^=(lst=tr.qval_by_rank(tr.root,x)); + else if(op==5)ans^=(lst=tr.qprev(x)); + else ans^=(lst=tr.qnex(x)); + } + cout<>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/FastRead.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/FastRead.cpp new file mode 100644 index 0000000..ea17869 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/FastRead.cpp @@ -0,0 +1,7 @@ +inline int read() +{ + int x=0,f=1;char ch=getchar(); + while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();} + while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();} + return x*f; +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Inv_FFT.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Inv_FFT.cpp new file mode 100644 index 0000000..b5f581c --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Inv_FFT.cpp @@ -0,0 +1,95 @@ +#include +#define int long long +using namespace std; +const double PI=acos(-1); +const int N=5e6+5; +const int MOD=998244353; +int ksm(int x,int k){ + int ans=1; + while(k){ + if(k&1)ans=x*ans%MOD; + x=x*x%MOD; + k>>=1; + } + return ans; +} +namespace Poly{ + int len,Lim=1,Alen,Blen,rev[N],ans[N]; + struct Complex{ + double r,i; + Complex(){r=0,i=0;} + Complex(double real,double imag):r(real),i(imag){} + }; + inline Complex operator +(Complex A,Complex B){return Complex(A.r+B.r,A.i+B.i);} + inline Complex operator -(Complex A,Complex B){return Complex(A.r-B.r,A.i-B.i);} + inline Complex operator *(Complex A,Complex B){return Complex(A.r*B.r-A.i*B.i,A.r*B.i+A.i*B.r);} + inline void init(int Alen,int Blen){ + while(Lim<=Alen+Blen)Lim<<=1,++len; + for(int i=0;i>1]>>1)|((i&1)<<(len-1)); + } + inline void FFT(vector& a,int type){ + for(int i=0;i mul(vector f,vector g){ + int lf=f.size(),lg=g.size(); + init(lf,lg); + f.resize(Lim),g.resize(Lim); + vector h(Lim); + FFT(f,1);FFT(g,1); + for(int i=0;i Inv(int n,vector A){ + vector B(n); + B[0].r=ksm(A[0].r,MOD-2,MOD); + int deg=1; + while(deg<(n<<1)){ + deg<<=1; + vector C=(deg<=n?vector(A.begin(),A.begin()+deg):A); + init(deg,B.size()); + C.resize(Lim);B.resize(Lim); + FFT(C,1);FFT(B,1); + for(int i=0;i>n; + vectorA(n); + for(int i=0;i>A[i].r; + vectorans=Poly::Inv(n,A); + for(int i=0;i>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Inv_NTT.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Inv_NTT.cpp new file mode 100644 index 0000000..89332a2 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Inv_NTT.cpp @@ -0,0 +1,85 @@ +#include +#define ll long long + +using namespace std; +const int N=3e6+5; +inline int ksm(int x,int k,int mod){ + int ans=1; + while(k){ + if(k&1)ans=1ll*ans*x%mod; + x=1ll*x*x%mod; + k>>=1; + } + return ans; +} +namespace Poly{ + const int MOD=998244353,G=3,INVG=332748118; + int lim,len,rev[N],invlim; + inline void init(int l1,int l2){ + lim=1,len=0; + while(lim<=l1+l2)lim<<=1,len++; + for(int i=0;i>1]>>1)|((i&1)<<(len-1)); + invlim=ksm(lim,MOD-2,MOD); + } + inline void NTT(vector &f,int type){ + for(int i=0;i mul(vector f,vector g){ + int lf=f.size(),lg=g.size(); + init(lf,lg); + f.resize(lim),g.resize(lim); + vector h(lim); + NTT(f,1);NTT(g,1); + for(int i=0;i Inv(int n,vector A){ + vector B(n); + B[0]=ksm(A[0],MOD-2,MOD); + int deg=1; + while(deg<(n<<1)){ + deg<<=1; + vector C=(deg<=n?vector(A.begin(),A.begin()+deg):A); + init(deg,B.size()); + C.resize(lim);B.resize(lim); + NTT(C,1);NTT(B,1); + for(int i=0;i>n; + vector f(n); + for(int i=0;i>f[i]; + vector g=Poly::Inv(n,f); + for(int i=0;i>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Left partial tree.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Left partial tree.cpp new file mode 100644 index 0000000..1f39611 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Left partial tree.cpp @@ -0,0 +1,78 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +using namespace std; +const int N=1e6+5; +const int M=1e8+5; +const int INF=1e9; +const int p=998244353; +const double DARW=0.97; +struct node{int ch[2],d,val;}t[N]; +int f[N],ff[N]; +int find(int x){ + if(f[x]==x)return x; + return f[x]=find(f[x]); +} +int& rs(int x){return t[x].ch[t[t[x].ch[1]].dt[y].val||(t[x].val==t[y].val&&x>y))swap(x,y); + f[y]=find(x); + rs(x)=merge(rs(x),y); + t[x].d=t[rs(x)].d+1; + return x; +} +void solve(){ + int n,m; + cin>>n; + for(int i=1;i<=n;i++){ + cin>>t[i].val;t[i].d=1; + f[i]=i;ff[i]=1; + } + cin>>m; + while(m--){ + char op; + int x,y; + cin>>op; + if(op=='M'){ + cin>>x>>y; + if(!ff[x]||!ff[y]||find(x)==find(y))continue; + merge(find(x),find(y)); + }else { + cin>>x; + if(!ff[x]){ + cout<<"0\n"; + continue; + } + int k=find(x); + cout<>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Linklist.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Linklist.cpp new file mode 100644 index 0000000..fd820c9 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Linklist.cpp @@ -0,0 +1,112 @@ +#include +using namespace std; +struct Node{ + int date; + Node* next; + Node(const int& d):date(d),next(0){} +}; +class LinkList{ + Node* pHead; +public: + LinkList():pHead(0){}; + ~LinkList(); + int IsEmpty(); + void Print(); + void Insert(int value); + void deletenode(int value); + Node* find(int value); + LinkList& operator=(const LinkList& a); +}; +LinkList::~LinkList(){ + Node* pNow; + while(pHead){ + pNow=pHead; + pHead=pHead->next; + delete pNow; + } +} +int LinkList::IsEmpty(){ + if(pHead)return 0;//首节点存在即非空 + else return 1; +} +void LinkList::Print(){ + for(Node* pNow=pHead;pNow;pNow=pNow->next){ + cout<date<<" "; + } + cout<<"\n"; +} +void LinkList::Insert(int value){ + Node* p=new Node(value); + p->next=pHead; + pHead=p; +} +void LinkList::deletenode(int value){ + Node *pLst=pHead,*pNow=pHead; + while(pNow&&pNow->date!=value)pLst=pNow,pNow=pNow->next; + if(!pNow)return;//不存在value + if(pNow==pHead){//删除节点为首节点 + pHead=pHead->next; + delete pNow; + }else {//删除节点非首节点 + pLst->next=pNow->next; + delete pNow; + } +} +Node* LinkList::find(int value){ + Node *pNow=pHead; + while(pNow&&pNow->date!=value)pNow=pNow->next; + return pNow; +} +LinkList& LinkList::operator=(const LinkList& a){ + if(this==&a)return *this;//为自身则返回 + this->~LinkList();//释放原来点 + pHead=0; + if(!a.pHead)return *this; + pHead=new Node(a.pHead->date); + pHead->next=0; + Node* p; + for(Node *pNow=a.pHead->next,*plst=pHead;pNow;pNow=pNow->next){ + p=new Node(pNow->date); + plst->next=p; + p->next=0; + plst=p; + } + return *this; +} +int main(){ + LinkList a; + int num,n; + cout<<"the size of list:"; + cin>>n; + while(n--){//测试输入 + cout<<"cin:"; + cin>>num; + a.Insert(num); + cout<<"list a:"; + a.Print(); + } + LinkList b; + b=a; + cout<<"list b:"; + b.Print(); + int finda; + cout<<"find:"; + cin>>finda; + Node* it=a.find(finda);//测试查找、= + cout<<"the address of findnum:"; + cout<date=0; + cout<<"list a:"; + a.Print(); + cout<<"list b:"; + b.Print(); + int del; + while(!a.IsEmpty()){//测试删除,判空 + cout<<"del:"; + cin>>del; + a.deletenode(del); + cout<<"list a:"; + a.Print(); + } + +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Linklist_template.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Linklist_template.cpp new file mode 100644 index 0000000..1a452b2 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Linklist_template.cpp @@ -0,0 +1,104 @@ +#include +using namespace std; +template +struct Node{ + T date; + Node* next; + Node(const T& d):date(d),next(0){} +}; +template +class LinkList{ +public: + Node* pHead; + LinkList():pHead(0){}; + ~LinkList(); + int IsEmpty(); + void Print(); + void Insert(const T& value); + void deletenode(const T& value); + Node* find(const T& value); + LinkList& operator=(const LinkList& a); +}; +template +LinkList::~LinkList(){ + Node* pNow; + while(pHead){ + pNow=pHead; + pHead=pHead->next; + delete pNow; + } +} +template +int LinkList::IsEmpty(){ + if(pHead)return 0;//首节点存在即非空 + else return 1; +} +template +void LinkList::Print(){ + for(Node* pNow=pHead;pNow;pNow=pNow->next){ + cout<date<<" "; + } + cout<<"\n"; +} +template +void LinkList::Insert(const T& value){ + Node* p=new Node(value); + p->next=pHead; + pHead=p; +} +template +void LinkList::deletenode(const T& value){ + Node *pLst=pHead,*pNow=pHead; + while(pNow&&pNow->date!=value)pLst=pNow,pNow=pNow->next; + if(!pNow)return;//不存在value + if(pNow==pHead){//删除节点为首节点 + pHead=pHead->next; + delete pNow; + }else {//删除节点非首节点 + pLst->next=pNow->next; + delete pNow; + } +} +template +Node* LinkList::find(const T& value){ + Node *pNow=pHead; + while(pNow&&pNow->date!=value)pNow=pNow->next; + return pNow; +} +template +LinkList& LinkList::operator=(const LinkList& a){ + if(this==&a)return *this;//为自身则返回 + this->~LinkList();//释放原来点 + pHead=0; + if(!a.pHead)return *this; + pHead=new Node(a.pHead->date); + pHead->next=0; + Node* p; + for(Node *pNow=a.pHead->next,*plst=pHead;pNow;pNow=pNow->next){ + p=new Node(pNow->date); + plst->next=p; + p->next=0; + plst=p; + } + return *this; +} +template +LinkList Get_same(const LinkList& a,const LinkList& b){ + Node *it1=a.pHead,*it2=b.pHead; + LinkList c; + while(it1&&it2){ + if(it1->date==it2->date)c.Insert(it1->date),it1=it1->next,it2=it2->next; + else if(it1->date>it2->date)it2=it2->next; + else it1=it1->next; + } + return c; +} +int main(){ + LinkList a; + LinkList b; + char a1[]{'A','C','D','G','H'},b1[]{'B','C','E','G','H','O'}; + for(int i=4;i>=0;i--)a.Insert(a1[i]); + for(int i=5;i>=0;i--)b.Insert(b1[i]); + LinkList c=Get_same(a,b); + c.Print(); +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/List.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/List.cpp new file mode 100644 index 0000000..0782b3a --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/List.cpp @@ -0,0 +1,236 @@ +#include +#include +using namespace std; +struct Node{ + int date; + Node *next; + Node(const int& d):date(d),next(0){} +}; + +bool cmp1(int a,int b){return anext)arr[i]=p->date;//存入数组 + sort(arr,arr+listSize,cmp);//排序 + p=first; + for(int i=0;inext)p->date=arr[i];//更新链表 + delete[] arr; +} +List operator+(const List& a,const List&b){ + List c(a); + c+=b; + return c; +} +List& List::operator+=(const List& a){ + for(Node *p=a.first;p;p=p->next){ + Node *now=new Node(p->date); + last->next=now; + last=now; + } + listSize+=a.listSize; + return *this; +} +List& List::operator=(const List& a){ + if(this==&a)return *this; + new(this) List(a); + return *this; +} +void List::remove_all(const int& x){//移除所有为x的数 + while(remove(x)); +} +void List::erase(Node *pos){//移除指针为pos的数 + if(pos==first)pop_front();//若指定为首地址则利用pop_front函数 + else { + Node *p=first; + while(p->next!=pos)p=p->next;//找到pos前指针 + p->next=pos->next; + if(pos==last)last=p; + delete pos; + --listSize; + } +} +void List::erase(const int& w){//移除第x个的数 + if(w>listSize)return;//若w大于链表大小则返回 + if(w==1)pop_front(); + else { + Node *now=first->next,*before=first; + for(int i=2;i<=w;i++)before=now,now=now->next;//找到第x数所对应指针和第x-1数所对//应指针 + before->next=now->next; + if(now==last)last=before; + delete now; + --listSize; + } +} +List::List(int a[],int num){//将数组转换为链表 + listSize=num; + if(!num){ + first=0; + last=0; + }else { + Node *p=new Node(a[0]); + first=last=p; + for(int i=1;inext=p; + last=p; + } + } +} +List::List(const List &a){//拷贝 + listSize=a.listSize; + if(!listSize){ + first=last=0; + return; + } + Node *p=new Node(a.first->date),*now=a.first->next; + first=last=p; + for(;now;now=now->next){ + p=new Node(now->date); + last->next=p; + last=p; + } +} +void List::push_back(const int& x){//在链表末添加x + Node *p=new Node(x); + if(!listSize)first=last=p; + else { + last->next=p; + last=p; + } + ++listSize; +} +void List::push_front(const int& x){//将x置入链表首 + Node *p=new Node(x); + if(!listSize)first=last=p; + else { + p->next=first; + first=p; + } + ++listSize; +} +bool List::pop_back(){//移除链表最后一个数 + if(!listSize)return 0; + if(listSize==1){ + delete[] first; + first=last=0; + }else { + Node *now=first; + while(now->next!=last)now=now->next; + last=now; + delete now->next; + now->next=0; + } + --listSize; + return 1; +} +bool List::pop_front(){//移除链表第一个数 + if(!listSize)return 0; + if(listSize==1){ + delete first; + first=last=0; + }else { + Node *now=first; + first=first->next; + delete now; + } + --listSize; + return 1; +} +bool List::remove(const int& x){//移除第一个值为x的数 + Node *now=first,*before=first; + while(now&&now->date!=x)before=now,now=now->next;//找到第一个值为x的数 + if(now){//若存在值为x的数 不存在则返回0 + if(listSize==1){ + delete now; + first=last=0; + }else { + if(now==first){ + first=first->next; + delete now; + } + else if(now==last){ + last=before; + delete now; + last->next=0; + } + else{ + before->next=now->next; + delete now; + } + } + --listSize; + return 1; + } + return 0; +} +void List::clear(){//清空链表 + this->~List(); + first=last=0; + listSize=0; +} +void List::insert(Node *pos,const int& x){//在pos后插入x + Node *p=new Node(x); + p->next=pos->next; + pos->next=p; + if(pos==last)last=p; + ++listSize; +} +List::~List(){ + for(Node *p=first;first!=0;p=first){ + first=first->next; + delete p; + } +} +void List::print()const{ + for(Node* now=first;now;now=now->next)cout<date<<" "; + cout<<"\n"; +} +Node* List::find(const int& x)const{//寻找第一个值为x的数 未找到则返回0 + for(Node* p=first;p;p=p->next) + if(p->date==x)return p; + return 0; +} +int main(){ + int n; + cin>>n; + List a; + while(n--){ + int num; + cin>>num; + a.push_front(num); + } + a.print(); + List b; + b=a; + b.print(); + cout< + +using namespace std; +#define int long long +const int N=2e5+5; +const int MOD=1e6+3; +const int logn=21; +const double PI=3.1415926535897932384626433832795; +int ksm(int x,int b){ + int ans=1; + while(b){ + if(b&1)ans=ans*x%MOD; + x=x*x%MOD; + b>>=1; + } + return ans; +} +int exgcd(int a,int b,int& x,int& y){ + if(!b){x=1,y=0;return a;} + int ret=exgcd(b,a%b,y,x); + y-=a/b*x; + return ret; +} +int Inv(int a,int p){ + int d,x,y; + d=exgcd(a,p,x,y); + if(d==1)return (x%p+p)%p; + return -1; +} +int Cm(int n,int m,int p){ + int a=1,b=1; + if(m>n)return 0; + while(m){ + a=(a*n)%p; + b=(b*m)%p; + m--; + n--; + } + return a*Inv(b,p)%p; +} +int Lucas(int n,int m,int p){ + if(m==0)return 1; + return Cm(n%p,m%p,p)*Lucas(n/p,m/p,p)%p; +} +void solve(){ + int n,l,r,sum; + cin>>n>>l>>r; + int len=r-l+1; + //cout<>t; + while(t--) + solve(); +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/NTT.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/NTT.cpp new file mode 100644 index 0000000..c716506 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/NTT.cpp @@ -0,0 +1,67 @@ +#include +#define ll long long + +using namespace std; +const int N=3e6+5; +inline int ksm(int x,int k,int mod){ + int ans=1; + while(k){ + if(k&1)ans=1ll*ans*x%mod; + x=1ll*x*x%mod; + k>>=1; + } + return ans; +} +namespace Poly{ + const int MOD=998244353,G=3,INVG=332748118; + int lim,len,rev[N],invlim; + inline void init(int l1,int l2){ + lim=1,len=0; + while(lim<=l1+l2)lim<<=1,len++; + for(int i=0;i>1]>>1)|((i&1)<<(len-1)); + invlim=ksm(lim,MOD-2,MOD); + } + inline void NTT(vector &f,int type){ + for(int i=0;i mul(vector f,vector g){ + int lf=f.size(),lg=g.size(); + init(lf,lg); + f.resize(lim),g.resize(lim); + vector h(lim); + NTT(f,1);NTT(g,1); + for(int i=0;i>n>>m; + vector f(n+1),g(m+1); + for(int i=0;i<=n;i++)cin>>f[i]; + for(int i=0;i<=m;i++)cin>>g[i]; + vector h=Poly::mul(f,g); + for(int i=0;i<=n+m;i++)cout<>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/PDSU.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/PDSU.cpp new file mode 100644 index 0000000..3ef1e58 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/PDSU.cpp @@ -0,0 +1,93 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +#define pii pair +using namespace std; +const int N=2e5+5; +const int M=1e5+5; +const int INF=2e9; +//const int p=998244353; +const int MOD=1e9+7; +const double DARW=0.97; +struct node{int l,r,x,h;}tr[N<<6]; +int head[N],tot,n,m; +void build(int& p,int l,int r){ + if(!p)p=++tot; + if(l==r){tr[p].x=l;return;} + int mid=(l+r)>>1; + build(tr[p].l,l,mid); + build(tr[p].r,mid+1,r); +} +void change(int p1,int& p2,int l,int r,int x,int f,int h){ + if(!p2)p2=++tot; + if(l==r){tr[p2].x=f,tr[p2].h=h;return;} + int mid=(l+r)>>1; + if(x<=mid)change(tr[p1].l,tr[p2].l,l,mid,x,f,h),tr[p2].r=tr[p1].r; + else change(tr[p1].r,tr[p2].r,mid+1,r,x,f,h),tr[p2].l=tr[p1].l; +} +pii find(int p,int l,int r,int x){ + if(l==r)return {tr[p].x,tr[p].h}; + int mid=(l+r)>>1; + if(x<=mid)return find(tr[p].l,l,mid,x); + else return find(tr[p].r,mid+1,r,x); +} +pii findfa(int p,int x){ + pii y=find(p,1,n,x); + if(x==y.first)return y; + return findfa(p,y.first); +} +void merge(int p1,int& p2,int x,int y){ + pii px=findfa(p1,x),py=findfa(p1,y); + if(px.second>py.second)change(p1,p2,1,n,py.first,px.first,py.second); + else if(px.second>n>>m; + build(head[0],1,n); + for(int i=1;i<=m;i++){ + int op; + cin>>op; + if(op==1){ + int x,y; + cin>>x>>y; + merge(head[i-1],head[i],x,y); + }else if(op==2){ + int k; + cin>>k; + head[i]=head[k]; + }else { + int x,y; + cin>>x>>y; + head[i]=head[i-1]; + if(findfa(head[i],x).first==findfa(head[i],y).first)cout<<"1\n"; + else cout<<"0\n"; + } + } +} +signed main(){ + ios::sync_with_stdio(false); + cin.tie(0); + cout.tie(0); + int t=1,k=1; + //cin>>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/RandomIncremeMethod.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/RandomIncremeMethod.cpp new file mode 100644 index 0000000..4073a2b --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/RandomIncremeMethod.cpp @@ -0,0 +1,75 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +#define pii pair +using namespace std; +const int N=3e5+5; +const int M=5e6+5; +const int INF=1e9; +//const int p=998244353; +const int MOD=1e9+7; +const double DARW=0.97; +const double eps=1e-12; +int cmp(double x,double y){ + if(x-y>eps)return 1; + if(x-y>n; + for(int i=1;i<=n;i++)cin>>a[i].x>>a[i].y; + random_shuffle(a+1,a+n+1); + c.o=a[1],c.r=0; + for(int i=1;i<=n;i++){ + if(cmp(dist(a[i],c.o),c.r)==1){ + c.o=a[i],c.r=0; + for(int j=1;j<=i-1;j++){ + if(cmp(dist(c.o,a[j]),c.r)==1){ + c.o=getmid(a[i],a[j]); + c.r=dist(c.o,a[j]); + for(int u=1;u<=j-1;u++){ + if(cmp(dist(c.o,a[u]),c.r)==1){ + c=getc(a[i],a[j],a[u]); + } + } + } + } + } + } + cout<>t; + while(t--)solve(); +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Seg_treap.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Seg_treap.cpp new file mode 100644 index 0000000..0fb7621 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/Seg_treap.cpp @@ -0,0 +1,106 @@ +#include +#define int long long +const int N=2e5+5; +using namespace std; +struct Node{ + Node *ch[2]; + int val,prio; + int cnt; + int siz; + int to_rev=0; + Node(int val):val(val),cnt(1),siz(1){ + ch[0]=ch[1]=nullptr; + prio=rand(); + } + inline int upd_siz(){ + siz=cnt; + if(ch[0]!=nullptr)siz+=ch[0]->siz; + if(ch[1]!=nullptr)siz+=ch[1]->siz; + return siz; + } + inline void pushdown(){ + swap(ch[0],ch[1]); + if(ch[0]!=nullptr)ch[0]->to_rev^=1; + if(ch[1]!=nullptr)ch[1]->to_rev^=1; + to_rev=0; + } + inline void cheak_tag(){ + if(to_rev)pushdown(); + } +}; +struct Seg_treap{ +#define siz(_) (_==nullptr?0:_->siz) + Node* root; + pairsplit(Node* cur,int sz){ + if(cur==nullptr)return {nullptr,nullptr}; + cur->cheak_tag(); + if(sz<=siz(cur->ch[0])){ + auto temp=split(cur->ch[0],sz); + cur->ch[0]=temp.second; + cur->upd_siz(); + return {temp.first,cur}; + }else{ + auto temp=split(cur->ch[1],sz-siz(cur->ch[0])-1); + cur->ch[1]=temp.first; + cur->upd_siz(); + return {cur,temp.second}; + } + } + Node* merge(Node* sm,Node* bg){ + if(sm==nullptr&&bg==nullptr)return nullptr; + if(sm!=nullptr&&bg==nullptr)return sm; + if(sm==nullptr&&bg!=nullptr)return bg; + sm->cheak_tag(),bg->cheak_tag(); + if(sm->prioprio){ + sm->ch[1]=merge(sm->ch[1],bg); + sm->upd_siz(); + return sm; + }else{ + bg->ch[0]=merge(sm,bg->ch[0]); + bg->upd_siz(); + return bg; + } + } + void insert(int val){ + auto temp=split(root,val); + auto l_tr=split(temp.first,val-1); + Node* new_node; + if(l_tr.second==nullptr)new_node=new Node(val); + Node* l_tr_combined=merge(l_tr.first,l_tr.second==nullptr?new_node:l_tr.second); + root=merge(l_tr_combined,temp.second); + } + void seg_rev(int l,int r){ + auto less=split(root,l-1); + auto more=split(less.second,r-l+1); + more.first->to_rev=1; + root=merge(less.first,merge(more.first,more.second)); + } + void print(Node* cur){ + if(cur==nullptr)return; + cur->cheak_tag(); + print(cur->ch[0]); + cout<val<<" "; + print(cur->ch[1]); + } +}; +Seg_treap tr; +void solve(){ + srand(time(0)); + int n,m; + cin>>n>>m; + for(int i=1;i<=n;i++)tr.insert(i); + while(m--){ + int l,r; + cin>>l>>r; + tr.seg_rev(l,r); + } + tr.print(tr.root); +} +signed main(){ + ios::sync_with_stdio(false); + cin.tie(0); + cout.tie(0); + int t=1,k=1; + //cin>>t; + while(t--)solve(); +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/TCS.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/TCS.cpp new file mode 100644 index 0000000..1679663 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/TCS.cpp @@ -0,0 +1,138 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#define ll long long +#define int long long +#define pii pair +using namespace std; +const int N=1e5+5; +const int M=1e5+5; +const int INF=2e9; +//const int p=998244353; +const int MOD=1e9+7; +const double DARW=0.97; +int n,m,r,p,dfn; +int a[N],tr[N<<2],f[N],son[N],sz[N],idx[N],rnk[N],top[N],bj[N<<2],dep[N]; +vectore[N]; +void dfs1(int x,int fa){ + f[x]=fa; + sz[x]=1; + dep[x]=dep[fa]+1; + for(auto u:e[x]){ + if(u==fa)continue; + dfs1(u,x); + sz[x]+=sz[u]; + if(sz[u]>sz[son[x]])son[x]=u; + } +} +void dfs2(int x,int fa){ + idx[x]=++dfn; + rnk[dfn]=x; + top[x]=fa; + if(!son[x])return; + dfs2(son[x],fa); + for(auto u:e[x]){ + if(!idx[u])dfs2(u,u); + } +} +void pushdown(int l,int r,int bh){ + if(l==r)return; + int mid=(l+r)>>1; + (tr[bh<<1]+=(mid-l+1)*bj[bh])%=p; + (tr[(bh<<1)|1]+=(r-mid)*bj[bh])%=p; + (bj[bh<<1]+=bj[bh])%=p; + (bj[(bh<<1)|1]+=bj[bh])%=p; + bj[bh]=0; +} +void build(int l,int r,int bh){ + if(l==r){tr[bh]=a[rnk[l]]%p;return;} + int mid=(l+r)>>1; + build(l,mid,bh<<1); + build(mid+1,r,(bh<<1)|1); + tr[bh]=(tr[bh<<1]+tr[(bh<<1)|1])%p; +} +void add(int l,int r,int x,int y,int bh,int k){ + if(x<=l&&y>=r){(tr[bh]+=(r-l+1)*k)%=p,(bj[bh]+=k)%=p;return;} + pushdown(l,r,bh); + int mid=(l+r)>>1; + if(x<=mid)add(l,mid,x,y,bh<<1,k); + if(y>mid)add(mid+1,r,x,y,(bh<<1)|1,k); + tr[bh]=(tr[bh<<1]+tr[(bh<<1)|1])%p; +} +int find(int l,int r,int x,int y,int bh){ + if(x<=l&&y>=r)return tr[bh]; + pushdown(l,r,bh); + int mid=(l+r)>>1,ans=0; + if(x<=mid)(ans+=find(l,mid,x,y,bh<<1))%=p; + if(y>mid)(ans+=find(mid+1,r,x,y,(bh<<1)|1))%=p; + return ans; +} +void add(int x,int y,int z){ + while(top[x]!=top[y]){ + if(dep[top[x]]dep[y])swap(x,y); + add(1,n,idx[x],idx[y],1,z); +} +int find(int x,int y){ + int ans=0; + while(top[x]!=top[y]){ + if(dep[top[x]]dep[y])swap(x,y); + (ans+=find(1,n,idx[x],idx[y],1))%=p; + return ans; +} +void solve(){ + cin>>n>>m>>r>>p; + for(int i=1;i<=n;i++)cin>>a[i]; + for(int i=1,u,v;i>u>>v,e[u].push_back(v),e[v].push_back(u); + dfs1(r,0); + dfs2(r,r); + build(1,n,1); + for(int i=1;i<=m;i++){ + int op; + cin>>op; + if(op==1){ + int x,y,z; + cin>>x>>y>>z; + add(x,y,z); + }else if(op==2){ + int x,y; + cin>>x>>y; + cout<>x>>z; + add(1,n,idx[x],idx[x]+sz[x]-1,1,z); + }else { + int x; + cin>>x; + cout<>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/VirtualTree.cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/VirtualTree.cpp new file mode 100644 index 0000000..7ca6cf5 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/VirtualTree.cpp @@ -0,0 +1,116 @@ +#include +#define int long long +#define pii pair +using namespace std; +const int N=5e5+5; +int n,tot,idx[N],rth[N],d[N],f[N][100],lg[N],w[N][100]; +vectore[N]; +vectora; +mapmp; +bool cmp(int x,int y){return idx[x]s; + s.push_back(1); + e[1].clear(); + for(auto x:a){ + if(x==1)continue; + //cout<>n;d[1]=1; + for(int i=1,u,v,w;i>u>>v>>w; + e[u].push_back({v,w}); + e[v].push_back({u,w}); + } + table_log(); + dfs0(1,0); + int q; + cin>>q; + while(q--){ + int k; + cin>>k; + a.clear();mp.clear(); + for(int i=1,z;i<=k;i++)cin>>z,a.push_back(z),mp[z]=1; + sort(a.begin(),a.end(),cmp); + //for(auto u:a)cout<>t; + while(t--)solve(); +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/a.out b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/a.out new file mode 100644 index 0000000000000000000000000000000000000000..9ec755030923d60f335ed6aa9fb67943370a395a GIT binary patch literal 52032 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 +#include +#include +#define ll long long +using namespace std; +ll bsgs(ll a,ll b,ll p){ + mapmp; + ll cur=1,t=sqrt(p)+1,now; + for(int B=0;B<=t;B++){ + mp[b*cur%p]=B; + now=cur; + cur=cur*a%p; + } + cur=now; + for(int A=1;A<=t;A++){ + if(mp[now])return (ll)A*t-mp[now]; + now=now*cur%p; + } + return -1; +} +int main(){ + ll p,b,n; + cin>>p>>b>>n; + ll ans=bsgs(b,n,p); + if(ans==-1)cout<<"no solution\n"; + else cout< +#define int long long +using namespace std; +const int N=2e5+5; +vectore[N]; +int n,tot; +int a[N],cnt[N],sz[N],son[N],idx[N],r[N],rth[N],num[N],ans[N]; +multisets; +void dfs1(int x,int fa){ + sz[x]=1; + idx[x]=++tot; + rth[tot]=x; + for(auto u:e[x]){ + if(u==fa)continue; + dfs1(u,x); + if(!son[x]||sz[son[x]]>n; + for(int i=1;i<=n;i++)cin>>a[i]; + for(int i=1,u,v;i>u>>v,e[u].push_back(v),e[v].push_back(u); + dfs1(1,0); + dfs2(1,0,0); + for(int i=1;i<=n;i++)cout<>t; + while(t--)solve(); +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/lucas..cpp b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/lucas..cpp new file mode 100644 index 0000000..5132494 --- /dev/null +++ b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/lucas..cpp @@ -0,0 +1,36 @@ +#include +#define ll long long +using namespace std; +ll ini[100005]; +ll apow(ll a,ll b,ll p){ + ll ans=1;a%=p; + while(b){ + if(b&1)ans=ans*a%p; + a=a*a%p; + b>>=1; + } + return ans; +} +ll C(ll n,ll m,ll p){ + if(n>t; + while(t--){ + int n,m,p; + cin>>n>>m>>p; + table(p); + cout< +#define int long long +const int N=1e5+5; +using namespace std; + +struct Node{ + Node *ch[2]; + int val,prio; + int cnt; + int siz; + Node(int val):val(val),cnt(1),siz(1){ + ch[0]=ch[1]=nullptr; + prio=rand(); + } + Node(Node *node){ + val=node->val,prio=node->prio,cnt=node->cnt,siz=node->siz; + } + inline void upd_siz(){ + siz=cnt; + if(ch[0]!=nullptr)siz+=ch[0]->siz; + if(ch[1]!=nullptr)siz+=ch[1]->siz; + } +}; +struct none_rot_treap{ +#define _3 second.second +#define _2 second.first + Node* root; + pair split(Node* cur,int key){ + if(cur==nullptr)return {nullptr,nullptr}; + if(cur->val<=key){ + auto temp=split(cur->ch[1],key); + cur->ch[1]=temp.first; + cur->upd_siz(); + return {cur,temp.second}; + }else{ + auto temp=split(cur->ch[0],key); + cur->ch[0]=temp.second; + cur->upd_siz(); + return {temp.first,cur}; + } + } + tuplesplit_by_rk(Node* cur,int rk){ + if(cur==nullptr)return {nullptr,nullptr,nullptr}; + int ls_siz=cur->ch[0]==nullptr?0:cur->ch[0]->siz; + if(rk<=ls_siz){ + Node *l,*mid,*r; + tie(l,mid,r)=split_by_rk(cur->ch[0],rk); + cur->ch[0]=r; + cur->upd_siz(); + return {l,mid,cur}; + }else if(rk<=ls_siz+cur->cnt){ + Node *lt=cur->ch[0]; + Node *rt=cur->ch[1]; + cur->ch[0]=cur->ch[1]=nullptr; + return {lt,cur,rt}; + }else{ + Node *l,*mid,*r; + tie(l,mid,r)=split_by_rk(cur->ch[1],rk-ls_siz-cur->cnt); + cur->ch[1]=l; + cur->upd_siz(); + return {cur,mid,r}; + } + } + Node* merge(Node* u,Node* v){ + if(u==nullptr&&v==nullptr)return nullptr; + if(u!=nullptr&&v==nullptr)return u; + if(v!=nullptr&&u==nullptr)return v; + if(u->prioprio){ + u->ch[1]=merge(u->ch[1],v); + u->upd_siz(); + return u; + }else{ + v->ch[0]=merge(u,v->ch[0]); + v->upd_siz(); + return v; + } + } + void insert(int val){ + auto temp=split(root,val); + auto l_tr=split(temp.first,val-1); + Node *new_node; + if(l_tr.second==nullptr){ + new_node=new Node(val); + }else{ + l_tr.second->cnt++; + l_tr.second->upd_siz(); + } + Node *l_tr_combined=merge(l_tr.first,l_tr.second==nullptr?new_node:l_tr.second); + root=merge(l_tr_combined,temp.second); + } + void del(int val){ + auto temp=split(root,val); + auto l_tr=split(temp.first,val-1); + if(l_tr.second->cnt>1){ + l_tr.second->cnt--; + l_tr.second->upd_siz(); + l_tr.first=merge(l_tr.first,l_tr.second); + }else{ + if(temp.first==l_tr.second){ + temp.first=nullptr; + } + delete l_tr.second; + l_tr.second=nullptr; + } + root=merge(l_tr.first,temp.second); + } + int qrank_by_val(Node *cur,int val){ + auto temp=split(cur,val-1); + int ret=(temp.first==nullptr?0:temp.first->siz)+1; + root=merge(temp.first,temp.second); + return ret; + } + int qval_by_rank(Node *cur,int rk){ + Node *l,*mid,*r; + tie(l,mid,r)=split_by_rk(cur,rk); + int ret=mid->val; + root=merge(merge(l,mid),r); + return ret; + } + int qprev(int val){ + auto temp=split(root,val-1); + int ret=qval_by_rank(temp.first,temp.first->siz); + root=merge(temp.first,temp.second); + return ret; + } + int qnex(int val){ + auto temp=split(root,val); + int ret=qval_by_rank(temp.second,1); + root=merge(temp.first,temp.second); + return ret; + } +}; +none_rot_treap tr; +int a[N]; +void solve(){ + srand(time(0)); + int n,m,ans=0; + cin>>n>>m; + for(int i=1;i<=n;i++)cin>>a[i],tr.insert(a[i]); + int lst=0; + while(m--){ + int op,x; + cin>>op>>x; + x^=lst; + if(op==1)tr.insert(x); + else if(op==2)tr.del(x); + else if(op==3)ans^=(lst=tr.qrank_by_val(tr.root,x)); + else if(op==4)ans^=(lst=tr.qval_by_rank(tr.root,x)); + else if(op==5)ans^=(lst=tr.qprev(x)); + else ans^=(lst=tr.qnex(x)); + } + cout<>t; + while(t--){ + solve(); + } +} \ No newline at end of file diff --git a/template-LaTeX-ECNU-F0RE1GNERS-main/assets/sam.png b/template-LaTeX-ECNU-F0RE1GNERS-main/assets/sam.png new file mode 100644 index 0000000000000000000000000000000000000000..80280b01cdb6a000a13991a4edbc8e15e80b4b48 GIT binary patch literal 125332 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≧N*ZIp|wg^^0b^sMQ>S86%+~f(v8p20 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 +#include +#include +#include +#include +#include +#include +#include +#define ll long long +const int N=1e5+5; +using namespace std; +int root,tot; +struct splay{ + int ch[2],fa,val,cnt,size; +}a[N]; +void maintain(int x){ + a[x].size=a[a[x].ch[0]].size+a[a[x].ch[1]].size+a[x].cnt; +} +bool get(int x){ + return a[a[x].fa].ch[1]==x; +} +void clear(int x){ + a[x].ch[0]=a[x].ch[1]=a[x].fa=a[x].val=a[x].cnt=a[x].size=0; +} +void rotate(int x){ + int y=a[x].fa,z=a[y].fa,chk=get(x); + a[y].ch[chk]=a[x].ch[chk^1]; + if(a[x].ch[chk^1])a[a[x].ch[chk^1]].fa=y; + a[y].fa=x; + a[x].ch[chk^1]=y; + a[x].fa=z; + if(z)a[z].ch[y==a[z].ch[1]]=x; + maintain(y); + maintain(x); +} +void splay(int x){ + for(int f=a[x].fa;f=a[x].fa,f;rotate(x)){ + if(a[f].fa)rotate(get(x)==get(f)?f:x); + } + root=x; +} +void insert(int k){ + if(!root){ + a[++tot].val=k; + a[tot].cnt++; + root=tot; + maintain(root); + return; + } + int cur=root,f=0; + while(1){ + if(a[cur].val==k){ + a[cur].cnt++; + maintain(cur); + maintain(f); + splay(cur); + return; + } + f=cur; + cur=a[f].ch[a[f].val1){ + a[root].cnt--; + maintain(root); + return; + } + if(!a[root].ch[0]&&!a[root].ch[1]){ + clear(root); + root=0; + return; + } + if(!a[root].ch[0]){ + int cur=root; + root=a[root].ch[1]; + a[root].fa=0; + clear(cur); + return; + } + if(!a[root].ch[1]){ + int cur=root; + root=a[root].ch[0]; + a[root].fa=0; + clear(cur); + return; + } + int cur=root; + int x=pre(); + a[a[cur].ch[1]].fa=root; + a[root].ch[1]=a[cur].ch[1]; + clear(cur); + maintain(root); +} +int main(){ + int n; + cin>>n; + for(int i=1;i<=n;i++){ + int x,k; + cin>>x>>k; + if(x==1){ + insert(k); + }else if(x==2){ + del(k); + }else if(x==3){ + cout< +#include +#include +using namespace std; +const int N=1e5+5; +int a[N],f[N][25]; +inline int read() +{ + int x=0,f=1;char ch=getchar(); + while (ch<'0'||ch>'9'){if (ch=='-') f=-1;ch=getchar();} + while (ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();} + return x*f; +} +void st(int n){ + for(int u=1;u<=n;u++)f[u][0]=a[u]; + for(int i=1;(1<>n>>m; + for(int i=1;i<=n;i++)a[i]=read(); + st(n); + while(m--){ + int l,r; + l=read(); + r=read(); + int k=log2(r-l+1); + cout<