zoukankan      html  css  js  c++  java
  • Educational Codeforces Round 72

    Contest Info


    [Practice Link](https://codeforces.com/contest/1217)
    Solved A B C D E F
    5/6 O O O O O -
    • O 在比赛中通过
    • Ø 赛后通过
    • ! 尝试了但是失败了
    • - 没有尝试

    Solutions


    A. Creating a Character

    签到。

    B. Zmei Gorynich

    有一个怪兽,它有(x)点血,你有(n)种攻击方式,每种攻击方式可以用无限次,使用一次算一次攻击。
    每次攻击会对怪兽造成(min(d_i, curX))点伤害,如果(curX = 0),那么怪兽死亡,否则怪兽回复(h_i)点血,问最少几次攻击可以将怪兽打死,打不死输出(-1)

    思路:
    枚举造成最后一次死亡的攻击方式(i),显然前面需要让怪兽的生命值降到(d_i)或者以下即可。
    那么大可假定前面怪兽是没有死亡的,如果假设死亡了,那么显然存在另一个最后一次死亡的攻击方式使得答案更优。
    那么我们肯定是选(d_i - h_i)差值大的攻击方式进行攻击。

    C. The Number Of Good Substrings

    题意:
    有一个(01)字符串(s),定义(f(l, r))表示(s[l, r])的数值的十进制表示的大小,可以有前导(0)
    现在询问有多少((l, r))使得(f[l, r] = r - l + 1)

    思路:
    枚举每个(1)开头的,那么向后处理(20)位,并且记录一下这个数前面有多少个连续的(0)
    显然向后处理(20)位就会让数的大小超过(10^6),显然大于(n),所以枚举的时候注意一下前面的前导(0)是否足够使得满足条件即可。

    D. Coloring Edges

    题意:
    给出一个(n)个点(m)条边的有向图,没有自环和重边,现在要对它进行(k)边染色,使得没有任意一个环,使得环上的边有同一种颜色。
    找出最小的(k)并输出方案。

    思路:
    如果没有环,(k = 1)
    如果有环,大力猜测答案是(2),那么暴力(DFS)找环,对于回祖边,令它的颜色为(2)即可。

    E. Sum Queries?

    题意:
    定义一个可重集合是否平衡,为它里面数字之和(x)的每一位是否在某个数字的相应位上出现过。
    现在有两种操作,一种是修改某一个数,另一种是查询([l, r])范围内不平衡的可重集的最小的数字之和(X)是多少。

    思路:
    大力猜测不平衡的可重集只需要两个数就可以达到不平衡,并且这两个数只需要满足十进制表示的某一位都不为(0)即可。
    因为不为(0),如果没有产生进位,那么那一位的数肯定不存在,如果产生进位,最终会进位到某一位他们都为(0)的数,那么也不满足平衡条件。
    所以维护十个线段树即可。

  • 相关阅读:
    HDU 1009 FatMouse' Trade
    python正则表达式
    Python学习week5
    Python学习week4
    Python学习week3
    Python学习week2
    Python学习week1
    生活的艰辛(最小割,最大密度子图)
    最大获利(最小割,最大权闭合图,最大密度子图)
    最大密度子图
  • 原文地址:https://www.cnblogs.com/Dup4/p/11490067.html
Copyright © 2011-2022 走看看