- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
此题解决方很多
TJOI2010题解 Middle 此题解决方法很多,比较直接的解法是用平衡二叉树,在结点处标记每棵子树的儿子数,即可在O(logn)时间内完成每次操作。 注意如果采用非平衡的树结构,对于特殊构造的数据(比如按递增顺序依次加入)会退化到O(n^2)导致TLE Middle 平衡二叉树的实现较为繁琐。实际上,针对此题只要求“中位数”的特殊情况,可以用两个堆来实现。两个堆分别存储一半元素,较小的一半用大顶堆,较大的一半用小顶堆。 每次求中位数只需取出较小一半的最大元素即可。插入新元素时与中位数比较来确定插入到哪个堆里,同时可能会把该堆的堆顶元素移入另一个堆。 Movie 对于N=15的情况,可以暴力枚举解决 标准解法为网络流,可看作最大权闭合子图的扩展问题。 每个电影看作一个点,新加源S和汇T,若电影i的体验值v[i]为正,则连边S到i,容量为v[i],若i的体验值v[i]为负,则连边i到T,容量为|V[i]|。若i和j有关联d[ij],则连边i到j,容量为d[ij]。 求S到T的最大流即最小割C,所有正的体验值v[i]之和减去C,即为所求。 Movie 解释:在割里与S同侧的点集即为选出来看的电影。每个割包含三种边:从S到某个正体验值的电影的边(即没选的正体验值),从某个负体验值到T的边(即选了的负体验值),以及左边被选出,右边未被选出的边(即有前后关联的电影而我们只选了前一部的损失值)。所有正的体验值之和是我们最大可能的收益,则这三部分都可以看作某种“损失”,求最小割正是使得损失最小,故收益最大。 Weather 矩阵乘法。构造N*N的矩阵A: A[i+1][i] = 1 (1 = i n) A[i][n] = 1 (1 = i = n) 其余位置都为0 Weather 则可发现,若第i天之前的n天组成行向量 R = [wi-n, wi-n+1, …, wi-2, wi-1],则 R*A = [wi-n+1, …, wi-2, wi-1, wi] 设开始时n天的向量为R0 = [w1,w2,…wn], 则R0*Am-n的最右端元素即为第m天的天气 矩阵的幂Am-n可以用二分法(倍增法)在log(m)的时间内求出,总的复杂度为O(n^3*logm) Cutting 二分答案+树形DP 假设答案为p,将每个点的权值设为x[i] = v[i]-p*w[i],问题变成求不少于K个点的权值和最大的子树。若此权值和大于0,说明p过小,否则说明p过大。以此缩小一半的范围,继续二分直至精度满足要求为止。 Cutting 求不少于K个结点的总和最大的子树: 用dp[i][j]表示在以i点为根的子树中恰好选择了j个点(且选择了i点)的最大权值和 计算dp[i]时,边界条件dp[i][0] = 0, dp[i][1] = x[i] 依次对i的每个儿子t进行类似“背包”的dp: dp[i][j+c] ?= dp[i][j] + dp[t][c] (c = 1) 最后统计所有 dp[i][j] (j = K) 的最大值即可 总复杂度O(logC*n^3) River 最直接的做法:矩形面积并 每条污染河流都可看作一个2*N的矩形 以每个矩形的x1,x2坐标作为“事件点”,想象一条线从左向右扫描,维护一个线段树。遇到矩形的左边,就把相应线段加入,遇到矩阵的右边就删除,同时动态统计当前线段树中被覆盖的长度。 参考1999年陈宏的国家集训队论文 Seq 观察允许的“模式”可以发现,只有6种情况可行: 01, 03, 10, 12, 21, 30,可以发现序列一定是奇偶交替的。即每个位置只有两种选择{0,2}或者{1,3} 一个简单过滤:如果一条规则包含了超过两个奇数位或者超过两个偶数位,则必无解(于是实际上规则长度不会超过4) Seq 实际上此问题可转化为2-SAT问题,把每个位置看作一个变量,取0或1当做“假”,取2或3当做“真”,则题目中的限制可表示成一系列逻辑表达式: (1)相邻两元素x,y不能同真,因为不允许23,32模式。可表示成(~X OR ~Y) (2)两元素x,y不相等。可表示成(X OR Y) AND (~X OR ~Y) Seq 求解2-SAT问题的方法: 对每个变量x建立两个点,分别表示x和~x 对每个(x OR y)形式的限制,连有向边(~x ? y)和(~y ? x)。分别表示“若选择了~x必须选择y”和“若选择了~y必须选择x” 其他形式的限制,例如(~x OR y),均可类推 求此图的强连通分量,若发现存在某变量p和~p在同一强连通分量中,则无解,否则必有解 Clean 50%的数据:状态压缩dp (插头dp) 用dp[i][j][mask]表示当前考虑(i,j)格子,且其上的各个位置的状态是否能取到ma
原创力文档


文档评论(0)