专栏文章
梦熊省选模拟赛 5 题解
生活·游记参与者 3已保存评论 3
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 3 条
- 当前快照
- 1 份
- 快照标识符
- @miqp422l
- 此快照首次捕获于
- 2025/12/04 08:26 3 个月前
- 此快照最后确认于
- 2025/12/04 08:26 3 个月前
做了好几场,这场质量最高!
因为各种原因 ,真幽默。
A
题意:维护一个序列 ,有两种操作
1 l r v,表示 ,。2 l r,求把 到 中所有数选若干个出来乘在一起(可以重复),模 有多少种可能。
是质数,保证没有 是 的倍数。
容易发现,设 对 的阶为 ,我们只需要求 ,即 。
这个东西显然可以转化为:、、、 的阶的 。
单次修改只会对 个位置产生贡献,直接线段树维护即可。
B
题意:有两个 Floyd 算法:
CPPvoid Oldfloyd(int n){
for(int k=1;k<=n;k++){
for(int i=1;i<=n;i++) if(G[i][k]){
for(int j=1;j<=n;j++) if(G[k][j]){
G[i][j]=1;
}
}
}
}
和
CPPvoid Newfloyd(int n,int m){
for(int k=1;k<=m;k++){
for(int i=1;i<=n;i++) if(G[i][k]){
for(int j=1;j<=n;j++) if(G[k][j]){
G[i][j]=1;
}
}
}
}
给定 和 ,在所有 种图中,求出有多少个两个算法跑出来的结果相同。
不是哥们,我怕 TLE 把所有输入先读进去,这样可以稳小数据不寄(卡了常之后其实已经只有 稳过了)。但是我把输入数组开小了,直接挂成了零蛋。
考虑把点分为 和 两种,集合分别是 和 。
性质:
- 任何 中的点,最多与 中一个连通块相连。
- 如果 不和 的任何一个连通块相连,那么它所在的整体连通块必定是一个悬在海外的完全图。
这样设 为 中放了 个点, 中放了 个点的方案数,转移的时候乘上一些组合数就行了。
复杂度 ,会被卡常。你少写一些取模就能过。
不知为啥题解写的好复杂。
C
题意:第一行有 个格子,第二行有 个格子。要在里面放一些 的数,使得所有行和列都互不相同,且异或和为 ,求方案数。
这个真有 T3 难度吗。
考虑钦定 和 ,钦定两行有 个数相同。
子问题 1:求从 个数中选 个互不相同的数使得他们异或和为 的方案数。
这个瞎容斥即可。
子问题 2:将两行适当排列,使得对应列没有相同元素。
系数其实就是
场上由于只有 写这道题(T2 卡常卡了 INF 年),所以就根据这个胡了个 的做法,直接获得了 分,感觉很划来。
考虑这个东西拆成 ,发现可以写成 和 的卷积,所以用任意模数 就能做到 ,写的好看应该有 分( 就是这么写的)
现在还不会线性做法,别急。
相关推荐
评论
共 3 条评论,欢迎与作者交流。
正在加载评论...