【考试总结】2022-07-27
Sample
使用 乘数法来处理本题中最值问题。证明不会,过程就是列出被求最大值函数 表达式 ,由 的限制将问题转化成 的最大值求解。
对于每个参量求偏导,本题中可以得到 ,就可以得到 的表达式。
乍一看做完了,但是还没有处理 的限制,能处理不等约束的做法我看不懂,但是 的表达式形如关于 的反比例函数,那么可以让一个前缀抵消成 。二分这个前缀的长度,找到 的最小 再求答案即可。求答案时 的值直接对后缀的系数均分。
也有不带 的做法,就是双指针扫出来所有的二分结果
Det
做行差分再做列差分可以将每个区间带来的影响变成 处加一, 处减一。于是乎问题变成了连边 求生成树个数
由于 那么度数不小于 的点数量非常有限。将一度点用拓扑排序删去后找到二度点联通块,该联通块不能扩展的原因必然是出现了三度点边界(单独成联通块的情况更好处理就是了)
使用 dfs 找到边界,两端时同一个点那么直接给答案附加点数 的系数,否则在两个端点中间连一条广义边 表示使用这条边将这两个端点联通的方案是 而不使用这条边将这两个点联通的方案数是 ,根据实际含义可以得到初值为 。
可以用 std::map
记录广义边并合并,在原图中连接三度点的边也要作为广义边存在。
剩下工作就是求行列式
Game
题目中保证了对于每列都有至多一张卡牌向上有解,将其翻转之后变成至多一张卡牌向下。那么此时对于列牌数 的列而言就得到了答案,而那些列上只有一张卡牌的就需要钦定该行是否翻转
先按照牌数从小到大遍历所有行来处理钦定带来的迭代,被钦定波及的列在接下来的过程中不作处理。
根据实际含义,剩下要处理的是 “如果钦定行翻转情况使得这张牌向上,那么剩下的行翻转情况都被确定,需要让牌向下”,是 2-sat 射程范围内的东西。
注意建图时有几种情况的讨论,同时需要对于每列前后缀优化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律