zoukankan      html  css  js  c++  java
  • Codeforces Round #675 (Div. 2) 题解

    A. Fence

    输出(a+b+c-1)即可.

    B. Nice Matrix

    找到某些必须相等的四元组或者二元组,将它们变成当中第二大的数.

    C. Bargain

    统计每位的贡献,考虑从左到右第(i)位,该为数字为(d).
    如果去掉的区间在该位前,则贡献为(dfrac12di(i-1)10^{n-i});
    如果去掉的区间在该位后,则贡献为(ddisplaystylesum_{j=1}^{n-i}j10^{j-1}).
    复杂度(O(log n)).

    D. Returning Home

    可能的方案只有两种:
    1.直接从起点到终点;
    2.从起点出发(经过零个或多个特殊点)到某个特殊点后再到终点.
    因此只要求出起点到每个特殊点的最短路即可求出答案.
    对横纵坐标建图,有三种边:
    1.起点到坐标连边;
    2.特殊点横纵坐标间连权为零的边;
    3.相邻横纵坐标连边.
    复杂度(O(mlog m)).

    E. Minlexes

    从后往前添加字符贪心,每次去掉相邻字符当且仅当满足条件并且连续一段相同字符后没有字符或者字符更小.
    复杂度(O(|s|)).

    F. Boring Queries

    考虑离线版本.
    从左往右枚举右端点,维护关于左端点的答案.具体地,使用支持单点修改和区间乘法询问的线段树,维护一个数组(b)使得(b)中区间的积恰好是(a)中对应区间的最小公倍数.
    每次右端点添加数(a={p_1}^{r_1}cdots {p_k}^{r_k}),需要去掉前面出现过某些相同的(p)的影响,再在该点赋值(a).
    对每个质数使用栈记录当前关于该质数的贡献在哪些位置.
    时间复杂度为(O((nlog a_max+q)log n)).

    在线版本,使用可持久化线段树即可.

  • 相关阅读:
    Javascript中的this之我见
    Javascript中call、apply之我见
    IE 11中 onpropertychange失效
    解决在.NET 4.0下无法发送包含尖括号等请求的问题
    连续赋值与求值顺序var a = {n:1};a.x = a = {n:2}; alert(a.x);
    DBCC维护语句语法
    SqlServer数据库碎片整理——BCC SHOWCONTIG
    Change Jenkins time zone
    Jenkins中执行docker命令报错
    Redis 慢查询
  • 原文地址:https://www.cnblogs.com/Heltion/p/13769022.html
Copyright © 2011-2022 走看看