【考试总结】2021-03-13
A. 小A的树
树上路径问题首选点分治,然后二分最后最小的距离
考虑经过当前分治重心的路径,记录子树里面的点到它的距离和它属于哪个子树
然后按照距离排序
对于当前的二分距离 ,扫所有点分树上的点对,考虑合法的区间长度是单调的,也就是 在不断增加的过程中 是减小的
在单调指针移动的过程中记录有多少的点属于哪个子树,然后对于当前的点计算答案的时候减掉即可
值得指出的是,实现的时候右边的指针也可能往右移,桶跟着更新就行
小B的序列
维护区间的 和,以 为例,当前的区间如果 和和修改权值 完了不变,那么就直接返回
反之递归
复杂度考虑按照普通的势能线段树进行分析即可
小C的利是
这题加深了对行列式的值和排列的关系的认识
感觉就和做的把边看成 然后求长度为 的路径长度是 前面的系数一样好
考虑行列式求值的公式,考虑把 的位置视为 ,那么有这个点的排列对于行列式值得贡献为
如果说有一种手段使得让其满足排列的贡献最后能消掉,或者 意义下为 ,就说明有解
剩下的部分是一个构造,熟练的话可以直接切掉
设素数 满足 , 表示 意义下的 次单位根
求出来原根之后 ksm(root,(mod-1)/k)
就能得到
那么把原来的矩阵中 的位置设为 ,有 的位置设成 rand()*ksm(x,a[i][j])
把 带入求行列式的值即可
其实理解很简单,因为是行列式求值,对于一个排列,有 的贡献为
没有 的那些,只有和是 的倍数的排列,其贡献是非零的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律