ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【考试总结】2022-07-27

2022-07-28 07:31:06  阅读:111  来源: 互联网

标签:27 联通 07 处理 sum le 2022 钦定 lambda


Sample

使用 \(\rm Lagrange\) 乘数法来处理本题中最值问题。证明不会,过程就是列出被求最大值函数 \(f(p_1,\dots p_n)\) 表达式 \(\displaystyle2\sum_{i=1}^n ip_i(1-p_i)\),由 \(\displaystyle\sum_{i=1}^n p_i=1\) 的限制将问题转化成 \(\displaystyle F(p_1,\dots p_n,\lambda)=f(p_1,\dots p_n)+\lambda (-1+\sum_{i=1}^n p_i)\) 的最大值求解。

对于每个参量求偏导,本题中可以得到 \(p_i=\dfrac{1}2+\dfrac{\lambda}{2i}\) ,就可以得到 \(\lambda\) 的表达式。

乍一看做完了,但是还没有处理 \(0\le p_i\le 1\) 的限制,能处理不等约束的做法我看不懂,但是 \(p_i\) 的表达式形如关于 \(i\) 的反比例函数,那么可以让一个前缀抵消成 \(0\) 。二分这个前缀的长度,找到 \(\displaystyle\sum_{i=R}^n p_i\le 1\) 的最小 \(R\) 再求答案即可。求答案时 \(\lambda\) 的值直接对后缀的系数均分。

也有不带 \(\log\) 的做法,就是双指针扫出来所有的二分结果

Det

做行差分再做列差分可以将每个区间带来的影响变成 \(a_{l,l},a_{r+1,r+1}\) 处加一,\(a_{l,r+1},a_{r+1,l}\) 处减一。于是乎问题变成了连边 \((l,r+1)\) 求生成树个数

由于 \(m\le n+300\) 那么度数不小于 \(3\) 的点数量非常有限。将一度点用拓扑排序删去后找到二度点联通块,该联通块不能扩展的原因必然是出现了三度点边界(单独成联通块的情况更好处理就是了)

使用 dfs 找到边界,两端时同一个点那么直接给答案附加点数 \(+1\) 的系数,否则在两个端点中间连一条广义边 \((a,b)\) 表示使用这条边将这两个端点联通的方案是 \(a\) 而不使用这条边将这两个点联通的方案数是 \(b\),根据实际含义可以得到初值为 \((1,\text{联通块边数})\) 。

可以用 std::map 记录广义边并合并,在原图中连接三度点的边也要作为广义边存在。

剩下工作就是求行列式

Game

题目中保证了对于每列都有至多一张卡牌向上有解,将其翻转之后变成至多一张卡牌向下。那么此时对于列牌数 \(\ge 2\) 的列而言就得到了答案,而那些列上只有一张卡牌的就需要钦定该行是否翻转

先按照牌数从小到大遍历所有行来处理钦定带来的迭代,被钦定波及的列在接下来的过程中不作处理。

根据实际含义,剩下要处理的是 “如果钦定行翻转情况使得这张牌向上,那么剩下的行翻转情况都被确定,需要让牌向下”,是 2-sat 射程范围内的东西。

注意建图时有几种情况的讨论,同时需要对于每列前后缀优化

标签:27,联通,07,处理,sum,le,2022,钦定,lambda
来源: https://www.cnblogs.com/yspm/p/TestReview20220727.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有