我是若智
观前须知
我是账号 Skadi_H 的新号主,是原号主在一个QQ频道里认识的一个同样在江苏的初二OIer(原号主现在退役了,现在正在QQ频道里唱歌撩妹)
简介
这是一个突然想到的idea
谨以此文,记录我从2024.1.23开始的若智行为
大家自己找,我纯纯就是脑子有冰
2024.1.23
void dfs(int u,int fa=0){
st[u][0]=fa;
dep[u]=dep[fa]=1;//
sum[u]=sum[fa]+getval(u);
for(int i=1;i<=__lg(dep[u]);i++)
st[u][i]=st[st[u][i-1]][i-1];
for(int i=rhead[u];i;i=re[i].nxt){
int v=re[i].v;
if(v==fa) continue;
dfs(v,u);
}
}
2024.1.24
void tarjan(int u){
dfn[u]=low[u]=++idx;s.push(u);
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].v;
if(!dfn[v]){
tarjan(v);low[u]=min(low[u],low[v]);
if(low[v]==dfn[u]){
cnt++;
int lin=0;
while(s.size()&&lin!=v){
lin=s.top();s.pop();
raddedge(lin,cnt);raddedge(cnt,lin);
}
}
raddedge(u,cnt);raddedge(cnt,u); //
}
else low[u]=min(low[u],dfn[v]);
}
}
2024.2.2
bool query(int x,int y,int z){
cout<<"? "<<x<<" "<<y<<" "<<x<<endl;//
string s;
cin>>s;
return (s[0]=='Y');
}
2024.2.13
for(int i=1;i<=n;i++){
for(int j=0;j<13;j++){
if(!(id[i]>>j))//
a[i]|=d[j];
}
}
2024.2.16
//treap
void pushup(int idx){
t[idx].siz=t[t[idx].lson].siz+t[t[idx].rson].siz;//
}
...
int merge(int x,int y){
if(!x||!y)
return x+y;
if(t[x].rnd<t[y].rnd){
if(t[x].tag)
pushdown(x);
t[x].rson=merge(t[x].rson,y);
pushup(x);
return x;
}
else{
if(t[y].tag)
pushdown(y);
t[y].lson=merge(t[y].lson,x);//
pushup(y);
return y;
}
}
2024.2.25
for(int i=1;i<=n;i++){
while(h<t&&getk(q[h],q[h+1])<=s[i]){
h++;
}
dp[i]=dppre[q[h]]+s[q[h]]*(s[i]-s[q[h]]);
fro[i][o]=q[h];
while(h<t&&getk(q[t-1],q[t])>=getk(q[t],q[i])){//
t--;
}
q[++t]=i;
}
long long ksm(long long a,long long b){
long long res=1;
while(b){
if(b&1)
res=res*a%mod;
a=a*a%mod;
b>>=1;
}
return res;
}
...
for(int i=0;i<=k;i++){
ans=(ans+fac[i]+stl2[k][i]%mod+C(n,i)%mod+ksm(m,n-i)%mod)%mod;//
}
2024.3.8
for(int i=1;i<=n;i++){
smu[i]+=-smu[i-1];//
}
2024.3.10
for(int l=1,r;l<=min(n,m);l=r+1){
r=min(n/(n/l),m/(m/l));
ans=(ans+(n/l)*(m/l)%mod*(((s[r]-s[l-1])%mod+mod)%mod)%mod);//
}
2024.3.12
void query(long long l,long long r){
...
for(int i=0;i<=2;i++)
for(int j=0;j<=2;j++)
for(int k=0;k<=2;k++)
for(int l=0;l<=2;l++){//
if(j&&j==k) continue;
dp[l][r][i][l]=(dp[l][r][i][l]+dp[l][p[l]][i][j]*dp[p[l]+1][r][k][l])%mod;
}
...
}
2024.4.2
void getroot(int u,int fa){
siz[u]=1;
int maxson=0;
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].v;
if(v==fa||del[v]) continue;
getroot(v,u);
siz[u]+=siz[v];
maxson=max(maxson,siz[v]);
}
maxson=max(maxson,sum-siz[v]);//
if(maxson<maxsiz)
maxsiz=maxson,root=u;
}
...
void calc(int u){
del[u]=vis[0]=1;
vector<int>().swap(lin);
for(int i=head[u];i;i=e[i].nxt){
int v=e[i].v;
if(del[v]) continue;
vector<int>().swap(dis);
d[v]=e[i].w;
//
for(int j=0;j<dis.size();j++)
for(int k=1;k<=q;k++)
if(da[k]>=dis[j])
da[k]|=vis[da[k]-dis[j]];
for(int j=0;j<dis.size();j++){
lin.push_back(dis[j]);
vis[dis[j]]=1;
}
}
for(int i=0;i<lin.size();i++)
vis[lin[i]]=0;
}
2024.4.5
dis.push_abck(d[u]);//
2024.5.29
void play(int st,int bk){
res=0;
int R=min(bk*B,n);
int l=R+1,r=R;
top=0;
for(int i=st;b[q[i].l]==bk;i++){//
......
2024.6.28
for(int i=1;i<=n;i++){
for(int j=1;j<=a[i]/j;j++){
if(a[i]%j==0)//
q[j].push_back(i);
if(j*j!=a[i])
q[a[i]/j].push_back(i);
}
}
//这一段是将数组a当中
//所有满足a_i%j==0的i推到vector v[j]里
2024.7.10
const double eps=-1e9;//