专栏文章

QOJ3231

个人记录参与者 19已保存评论 20

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
20 条
当前快照
1 份
快照标识符
@miqbfgmz
此快照首次捕获于
2025/12/04 02:03
3 个月前
此快照最后确认于
2025/12/04 02:03
3 个月前
查看原文
有一小部分没拍进去,μ(nd)=1\mu(\frac nd)=-1 是乘上了 11xd\frac{1}{1-x^d}
然后暴力做背包即可。
CPP
//0:01背包1:完全背包
void calc(int n)
{
  t0.clear(),t1.clear();
  for(int i=1;i*i<=n;i++) if(n%i==0)
  {
    if(mu[i]==1) t0.pb(n/i);
    if(mu[i]==-1) t1.pb(n/i);
    if(i*i!=n)
    {
      if(mu[n/i]==1) t0.pb(i);
      if(mu[n/i]==-1) t1.pb(i);
    }
  }
  ans[n].resize(phi[n]+1);
  ans[n][0]=1;
  for(auto j:t0) rep(i,phi[n],j) ans[n][i]-=ans[n][i-j];
  for(auto j:t1) fo(i,j,phi[n]) ans[n][i]+=ans[n][i-j];
  vis[n]=1;
}
为啥别人写的这么菜,我都最优解了兄弟们!!!!

评论

20 条评论,欢迎与作者交流。

正在加载评论...