[[http://112.74.186.118/doku.php?id=2020-2021:teams:legal_string:front_page|back]] [[.test:empty:test_2]] 这里有一个公式:$\sqrt\frac{2}{3}\lim_{x\to \infty}{\frac{x}{e^x}=0}$ 这里有一段代码 #include #include #include int main() { std::set s; for (int i=1;i<=1000;i++) s.insert(i*i%1234); for (auto i:s) std::cout< 这里有一个表格: ^算法 ^时间复杂度 ^空间复杂度 ^ |冒泡排序|$O(n^2)$ |$O(1)$| |堆排序 |$O(nlogn)$|$O(1)$| #include #include #include #include #include #define _for(i,a,b) for(int i=(a);i<(b);i++) #define _rep(i,a,b) for(int i=(a);i<=(b);i++) #define mem(a,b) memset(a,b,sizeof(a)) using namespace std; typedef long long LL; typedef vector::iterator iter; int read_int(){ int t; scanf("%d",&t); return t; } void space(LL x){ printf("%lld ",x); } void enter(LL x){ printf("%lld\n",x); } const int MAXN=1e5+5; namespace Tree{ int init_val; int lef[MAXN<<2],rig[MAXN<<2],maxv[MAXN<<2],maxc[MAXN<<2],secv[MAXN<<2],lazy[MAXN<<2]; LL sum[MAXN<<2]; void push_up(int k) { sum[k]=(sum[k<<1]+sum[k<<1|1]); if(maxv[k<<1]==maxv[k<<1|1]) { maxv[k]=maxv[k<<1]; maxc[k]=maxc[k<<1]+maxc[k<<1|1]; secv[k]=max(secv[k<<1],secv[k<<1|1]); } else if(maxv[k<<1]>maxv[k<<1|1]) { maxv[k]=maxv[k<<1]; maxc[k]=maxc[k<<1]; secv[k]=max(secv[k<<1],maxv[k<<1|1]); }else { maxv[k]=maxv[k<<1|1]; maxc[k]=maxc[k<<1|1]; secv[k]=max(maxv[k<<1],secv[k<<1|1]); } } void push_tag(int k,int v) { if(v>=maxv[k]) return; sum[k]-=1LL*maxc[k]*(maxv[k]-v); maxv[k]=lazy[k]=v; } void push_down(int k) { if(~lazy[k]) { push_tag(k<<1,lazy[k]); push_tag(k<<1|1,lazy[k]); lazy[k]=-1; } } void build(int k,int L,int R) { lef[k]=L,rig[k]=R,lazy[k]=-1; int M=L+R>>1; if(L==R) { sum[k]=maxv[k]=init_val; secv[k]=-1; maxc[k]=1; return; } build(k<<1,L,M); build(k<<1|1,M+1,R); push_up(k); } void init(int n){ init_val=n; build(1,1,n); } void update(int k,int L,int R,int v) { if(maxv[k]<=v) return; if(L<=lef[k]&&rig[k]<=R&&secv[k]>1; if(mid>=L) update(k<<1,L,R,v); if(mid vec[MAXN]; void solve(){ int n=read_int(); _rep(i,1,n) p[read_int()]=i; _rep(i,1,n){ vec[i].clear(); vec[i].push_back(0); for(int j=i;j<=n;j+=i) vec[i].push_back(p[j]); sort(vec[i].begin(),vec[i].end()); } Tree::init(n); for(int i=n;i;i--){ for(int j=0;j+2