• 2020.08.07【省选B组】模拟 总结


    今天比赛—————>暴力欢乐赛
    估分:(30 + 0 + 30 + 0 = 60)
    考场:(30 + 0 + 30 + 0 = 60)
    人家暴力拿满(rank1)(* ̄︶ ̄)
    其实人家打了我不会打的暴力(* ̄︶ ̄)

    (T1)

    很容易想到将询问分块,然后就可以快速求出每个询问的边集。
    此时的问题就在于如何快速求答案。
    我们考虑用(Kosaraju)算法来计算,由于每个点只会经过一次,所以可以笼统地认为一次求答案是(n^2)的。
    但是(O(T*n^2))的时间复杂度仍然会(TLE),所以我们考虑(bitset)优化(大雾
    (Kosaraju)算法每个点只会遍历一次,所以我们用(bitset)来存储边集,并且在(dfs)时用(bitset)的自带枚举操作(跑得飞快)
    于是乎,这道题就完美(嘿嘿嘿)地解决了。

    (T2)

    这道题我们先考虑树的情况。
    可以将题意转化为原图能用链覆盖所有边且链不重的方案数。
    如果链的长度为(1)代表这条边不为环上边,链的长度大于(1)表示在链的两个端点连一条边,成为一个环。
    如此我们就可以(DP)转移:(f[x]=h[du[x]]*∏f[son])
    (du[x])表示(x)的度数,(h[du[x]])表示那些链可以相连也可以独立的方案数。
    关键在于原图可以为仙人掌,如果环有重边答案为(0)
    仙人掌的话我们可以发现环的部分不能有链出现,所以我们把环都删去然后对于每棵树都跑(DP)乘起来即为答案。

    (T3)

    这道题嘛,感觉一开始的转化很巧,然后接下来的分类讨论也可以可以的。
    对于求特征值为(K)的方案数,我们可以转化成求(<=K)的减去(<K)
    我们的问题就是要求特征值(<=X)的方案数。
    我们发现,(<=X)的可以一视同仁,(>X)的同理。
    所以问题转化成有(X)(0)(n-X)(1),求最后为(0)的方案数。
    发现如果存在有连续的((>=2)(0/1),则最靠近中间数的连续数的值即为最终答案。
    所以我们可以枚举最靠近中间数的位置,此时中间的数强制设为(0,1,0,1...)这样轮流交换(否则枚举的就不是最靠近的了),我们就知道剩下的数的个数,可以组合数处理答案。
    要特判全部是(0,1,0,1,0,1,0...)的情况,这样结果也是(0)

    (T4)

    总结

    无语了,今天又是(4)道题,而且还是(4)道神仙题。。。
    感觉还是要所有分都竟可能拿到吧,加油了只能(泪奔┭┮﹏┭┮)

  • 相关阅读:
    闭包Closures
    jsp中的四种对象作用域
    JFrame小练习1
    swift函数的用法,及其嵌套实例
    图的储存
    洛谷P3366 【模板】最小生成树(Kruskal && Prim)
    洛谷P3371 【模板】单源最短路径(弱化版)(SPFA解法)
    POJ 1577 Falling Leaves
    POJ 3784 Running Median
    洛谷P3374 【模板】树状数组 1
  • 原文地址:https://www.cnblogs.com/jz929/p/13453285.html
Copyright © 2020-2023  润新知