• 2016 ACM/ICPC Asia Regional Dalian Online


    2016 ACM/ICPC Asia Regional Dalian Online

    1002.Different GCD Subarray Query

    题意

    • 给一个长为(N(N le 10^5))的序列(a_i(a_i le 10^6))
    • (Q(Q le 10^5))次询问,每次求区间([L,R])中所有子序列的gcd种类。

    思路

    • 固定某个子序列的某个端点,那么不同的gcd值最多有(log{a_i})种。
    • 离线处理所有询问,按右端点(R)从小到大排序,记录gcd最右位置,用线段树或树状数组维护区间和。

    1007.Friends and Enemies

    题意

    • (M)个人,(N)种颜色的石头,其中(M,N lt 2^{31})
    • 每个人有一串由若干种石头构成的项链,可以没项链,即石头集合为空。
    • (M)个人要么是朋友关系,要么敌人关系。
    • 朋友关系:两人的项链至少有一种颜色相同;
    • 敌人关系:两个人没有相同颜色的石头。
    • 判断对于所有可能的关系,(N)种颜色是否都能满足这些上述条件。

    思路

    • 需要的颜色种数尽可能多,即图上边尽可能多,又不能出现三元环。
    • 手写小数据,发现二分图连边貌似是最多的(不会证明XD)。

    1008.Function

    题意

    • 给长为(N(N le 10^5))序列(A_i)
    • (Q(Q le 10^5))次询问,每次求(F(l, r), 其中)(F(l, r))表示(A_l\%A_{l+1}\%...\%A_r)的值。

    思路

    • (a ge b),则(a \% b le frac a 2)
    • 每次二分往右找第一个小于等于当前余数的位置取模。

    1009.Sparse Graph

    题意

    • 在补图中求单源最短路

    思路

    • 对于当前点来说,补图中有连边的点是一些区间,那么每次转移都是一段区间的转移,用一个set维护未扩展的点。

    代码


    1010.Weak Pair

    题意

    • 给一棵(N(N le 10^5))个点的有根树,每个点有权值(a_i)
    • ((u, v))的对数,满足(u)(v)的祖先且(a_u imes a_v le k)

    思路

    • 对于每棵子树(u),与(u)配对的对数相当于在dfs序区间中权值小于等于(frac k{a_u})的个数。
    • 那么按权值从小到大将点插入线段树(维护已出现的点个数),同时询问也按查询值从小到大排序,就边插入边查询。
    • (a_i=0)需要特判。

    代码

  • 相关阅读:
    Android x86 镜像分析之四
    Android x86 镜像分析之三
    Android x86 镜像分析之二
    Android x86镜像分析
    tizen镜像制作
    完成登录与注册页面的前端
    JavaScript 基础,登录前端验证
    CSS实例:图片导航块
    导航,头部,CSS基础
    web基础,用html元素制作web页面
  • 原文地址:https://www.cnblogs.com/mcginn/p/5860654.html
Copyright © 2020-2023  润新知