zoukankan      html  css  js  c++  java
  • 【题解】 Codeforces Round #706 题解

    附(本场比赛各题 fst 率)

    div2 A B C D E F
    div1 A B C D E F
    div2 0.0010 0.0035 0.0007 0.3090 0 0
    div1 0 0.1962 0.0026 0 0 0

    A - Split it!

    检查 (k=0) 或者长 (k) 的前缀和长 (k) 的后缀的反串是否相同。

    注意如果 (2k=n) 要特判。

    复杂度 (O(n+k))

    B - Max and Mex

    模拟一下过程就会发现:

    要么 (max)(operatorname{max}) 永远不会变,要么就会一直加 (1)

    所以答案只有可能是 (n,n+1,n+k) 中的一个。

    注意特判 (k=0)

    复杂度 (O(n))

    C - Diamond Miner

    把所有点翻折到正半轴。

    在最优方案中连线不能交叉,因为三角形不等式。

    所以直接排序贪心连接。

    复杂度 (O(n log n))

    D - Let's Go Hiking

    设最长连续单调段长度为 (a),个数为 (b)

    只有 (b=2),且这两段有交,且 (a) 为奇数的时候有解。

    复杂度 (O(n))

    E - Garden of the Sun

    搁三列填满一次,发现这样不会有环,然后只需要把这些列连起来就行了。

    复杂度 (O(nm))

    F - BFS Trees

    考虑计算 (f(i,j)),如果 (i,j) 之间最短路有多条则答案为 (0)

    否则可以暴力检查每一条边是否能在树中,并为每一个不在最短路上的点安排一个父亲结点即可。

    复杂度 (O(n^2m))

    G - Qingshan and Daniel

    找到会出完牌的一队 A,另一队伍为 B,对于 A 队,它的每一次出牌会造成右侧第一个 B 队的人出牌。

    直接记录一下当前遍历到的 A 队的它们会让多少个后面的 B 队的人出牌 (cnt)

    如果下一个是 A 队,则 (cnt += a_i)

    如果下一个是 B 队,则让这个人出 (min(a_i,cnt)) 张牌,并让 (cnt) 减小。

    复杂度 (O(n+m))

    H - Squares

    这题窝不会,丢个官方题解:https://codeforces.com/blog/entry/88533

    验题人提供一个和官方题解不同的做法。

    把树建出来,发现你无论怎么走到 end,都必须经过一个点的父亲。

    预处理每个点到父亲的最短路,预处理跳过一棵子树的最短路和落点。

    查询可以直接树上差分出来。

    复杂度 (O((n+q)log n))

  • 相关阅读:
    MySQL数据库的安装与密码配置
    Java 的设计模式之一装饰者模式
    Java中Eclipse的使用
    Java的学习之路
    Java学习笔记(06)
    Java学习笔记(05)
    Java学习笔记(04)
    mysql出现2003——can't connect to mysql server on localhost(10061)
    抢票难。
    java 的接口起什么作用
  • 原文地址:https://www.cnblogs.com/imakf/p/14515312.html
Copyright © 2011-2022 走看看