zoukankan      html  css  js  c++  java
  • 11月28日考试 题解

    懒得放代码了,真是越来越怠惰了呢。

    T1

    题目大意:给定一张无向图,每条边起始均为白色。规定当与一个点相连的所有边只有一条边为白色时这条边将会染成黑色。可以手动染黑一些边。求最小染的次数。

    手玩样例发现答案为总边数减去生成树边数。图不一定联通,这个结论可以推广到多个连通块。bfs即可。

    T2

    原题目:AT1218

    考虑贪心,从小往大放。根据题意小的一定是往两边放的,发现如果要交换与它交换的只有比它大的数,因为小的数已经放好位置了。现在问题就转化为求逆序对,然后对于两边取min求和即可。

    T3

    题目大意:有三种动物分别为$A,B,C$,三个的克制关系为:$A ightarrow B,B ightarrow C,C ightarrow A$。有$n$个笼子,每个笼子随机装着一种动物。有两种操作:1.将$v$笼子拆掉,把里面的动物放到$u$笼子来;2.询问使$u$笼子内动物知道现在仍能存活的初始状态的方案数。

    我们可以维护一个每个动物存活的概率,然后合并的时候使用并查集。每次合并$u,v$的时候$u$的概率乘$frac{2}{3}$,$v$的概率乘$frac{1}{3}$,然后对于每个集合打lazy tag,find的时候更新子节点。询问的时候概率乘总方案即可。

    T4

    题目大意:给定一棵树,$q$次询问,每次给定$u,v,k$,请确定$k$条路径使得两两路径的交集为$<u,v>$。求方案数。注意点是有顺序的。保证每个点度数不超过$l$。

    我不会$O(ql)$的做法,只会$ql^2$的。暂且说一下吧。

    首先可以转化题意,变成“在$u$的子树中选两个节点使得它们的LCA为$u$”。显然每个子树内只能选一个节点,然后可以树形背包搞了。设$f_{i,j}$表示前$i$个子树选$j$个的方案数,然后大力转移。注意要去掉$<u,v>$这条链的方案数。不要忘记乘可重集合的排列。

    正解是生成函数背包搞,也可以在$ql^2$的基础上预处理一些东西。不太会,咕咕咕……

  • 相关阅读:
    “xmlns:d="http://schemas.microsoft.com/expression/blend/2008"” 命名空间不能被解析
    mysql 连接命令 表管理 ,克隆表,临时表,字符串属性,设定语句间的分隔符
    视图
    NULL值比较,两个列的合并,列值按条件替换。
    词性和 句子成份
    设置用户帐号只能一个地方登录
    数字的格式化,异常处理
    接口,构造器与垃圾回收机制,对像的生命周期。非静态方法与静态方法。
    继承,多态..
    JavaScript —— 常用数据类型隐式转换
  • 原文地址:https://www.cnblogs.com/Invictus-Ocean/p/14054183.html
Copyright © 2011-2022 走看看