摘要:
是个简单题,可惜我代码暂时写挂了,起床再来改() 显然先要求出 \(cnt(f(i)),(i \in [1,N]),cnt(x)\) 表示 \(x\) 的出现次数。求出来之后两两相乘贪心即可。 但 \(f(i)\) 最大可能是 \(10^{12}\) ,省略掉了大于 \(N\) 的情况。所以要探讨下 阅读全文
摘要:
还没写,不一定对。/cy 一个 \(naive\) 的想法,暴力枚举 s 的子串,然后找 \([x,y]\) 有多少个子串。但找的话似乎很难实现,直接对 s 建 SAM,之后数位 dp 时记录下现在匹配到哪个节点即可。 我们发现,枚举是不必要的,我们只需要在数位 dp 时记录能匹配到长度多少,对于匹 阅读全文
摘要:
挺 SB 的,要不是我睡过头赛时就切了。 我习惯用 \(C(n,m)\) 表示 \(n\) 个数选 \(m\) 个数的方案。 因为 \(a_i\) 升序,显然按 \([l,k),(k,r]\) 去分。 考虑暴力,然而每种方案数很难算。换个角度,考虑一个数的贡献次数。 挺显然的,假如 \(i\in[l 阅读全文
摘要:
链接 vp 的,赛时 \(80+0+100+0\) T1 不会,写了个分块+ST 表,发现常数还比暴力大。 T2 不会,看题解才会了,想到了经典套路之固定端点瞎选。 T3 萌萌数据结构,提示性挺强的,发现每个点都可以将 2 段序列合并成一段新的,考虑贪心即可,每次合并 2 段最大的序列,考虑 mul 阅读全文
摘要:
简单题。 发现最终状态无限,起始状态有限,考虑逆推(辅以记忆化) 设 \(f[x][y][z]\) 为 \(x\) 个 a,\(y\) 个 \(b\),\(z\) 个 ab 的期望 ab 个数。 则考虑能怎样走到哪些状态。 选 a,\(f[x+1][y][z]\) 选 b,\(f[x][y+1][x 阅读全文
摘要:
9/27(0.5h)+10/1(3h) T2 看不懂,T3 调成狗。 T1,点数的尽可能少提示性强,往完全图方向想,写了个暴力找不同路径数,发现 \(i->n\) 决定二进制的该位。 T3,删除相邻的边,要求删除后最短路的最大值。显然删除的这条边只可能在最短路的路径上。考虑建最短路径树。对于 \(f 阅读全文
摘要:
考虑求 \(l\in[L,R],r\in[L,R]\) 的某个答案,且答案可以预处理。 考虑抽象到二维平面。 \((l,r)\) 表示序列 \([l,r]\) 的答案。 那么所求的就是 \((L,L),(R,R)\) 这个矩阵的答案。 考虑二维前缀和即可。 阅读全文
摘要:
强连通分量 void tarjan(int x) { dfn[x]=low[x]=++tot; s.push(x); flag[x]=1; for(int i=head[x];i;i=e[i].nex) { int y=e[i].to; if(!dfn[y]) { tarjan(y); low[x] 阅读全文
摘要:
orz ClCN \(\sum_{i=0}^{n}\tbinom{i}{m}=\tbinom{n+1}{m+1}\) \(\sum_{i=1}^{+\infty}if(i)=\sum_{j=1}^{+\infty}\sum_{i=j}^{+\infty}f(i)=\sum_{j=1}^{+\inft 阅读全文
摘要:
因为脏的衣服在一天结束时才会有,干净的一天开始才会有,考虑拆点。 再考虑干净的衣服都是要被收集起来的,所以干净的要流向超汇。而脏的衣服可以从超源免费获得所需要的个数,而干净的衣服只能购买。 看张图吧,假如只有 1 个点的话,且需要无限多的衣服。 显然前者正确,后者矛盾(收集了脏衣服) 再者,这种建图 阅读全文