zoukankan      html  css  js  c++  java
  • ACM-ICPC 2018 徐州赛区网络预赛

    ACM-ICPC 2018 徐州赛区网络预赛


    A.Hard to prepare

    • 打表找规律即可。

    B.BE, GE or NE

    • 题意:给定一个初始分数,然后两个人轮流进行操作,A目的使得最后分数大于等于up,B目的使得最后分数小于等于down。每个人每轮进行的操作是指,从对应那一行的三个数a,b,c中,选择对当前的分数加上a(若a不为0),减去b(若b不为0),或乘上-c(若c不为0)。问最后谁赢。
    • sol:
    • dp[i][j]当前分数为j,从当前行到最后一行执行完所有操作,A能否赢。dp[i][j]=1代表A赢,0代表平局,-1代表B赢。从最后一行开始倒推即可。复杂度O(n*200)。

    F.Features Track

    • 题意:每一行都有一些二维坐标。求一个点连续出现最多的行数。连续出现是指相邻两行都出现。
    • sol:
    • 直接开两个map。make_pair
    • 第一个map保存当前的点i-1行中最后出现的行。第二个map保存到第i行为止的连续行数。显然,如果第一个map中位置为i-1行,那么确实能连上,跟新第一个map为第i行,第2个map+1。若不是,第一个map为第i行,第二个map为1。记录最大值即可。

    G.Trace

    • 题意:在第一象限里会出现(0,0)为左下角(x,y)为右上角的矩形。矩形按照顺序出现,后面一个矩形的出现有可能会挡住前面矩形的边,问最后你能看到的边的长度之和是多少。(除去x轴和y轴上的边)
    • sol:
    • 倒着考虑所有的矩形。可以发现,最后一个矩形肯定是全部裸露的。
      然后考虑倒数第二个,第二个矩形的右上角为(x2,y2)。那么,若x2大于y轴上y2坐标的值,那么ans需要加上x2-query_y(y2),同理,若y2大于x轴上x2坐标的值,那么ans需要假设y2-query_x(x2)。(现在加上的边在之前不可能被覆盖掉)。这样,离散化之后,用两个线段树维护即可。

    H.Ryuji doesn't want to study

    • 题意:长度为n的数组。两个操作:1、将第x个位置变为y。2、给定l和r,计算a[r]×1+a[r-1]×2+a[r-2]*3+......+a[l]×(r-l+1)。
    • sol:
    • 线段树。
    • 维护两颗线段树。第一颗,维护a[1]×n,a[2]×(n-1),a[3]×(n-2)......,a[n]×1的区间和。第二颗,维护a数组的区间和。
      那么最后的答案就为query1(ll,rr)-query2(ll,rr)×(n-r)。

    I.Maze Designer

    • 题意:n×m的格子。每个格子和相邻的格子联通。现在你可以在联通处造墙,使得原本联通的不联通。求满足造墙之后,任意两个点的路径唯一的最小花费。且给出询问,询问任意两个点的距离。
    • 可以发现,墙的最小花费=所有的花费-将所有格子联通的最大花费。可以发现,若要满足任意两个点的路径唯一,即是一棵树。树上路径唯一。所以,只需要做最大生成树即可。然后倍增lca,求任意两点之间的距离。
  • 相关阅读:
    Hackerrank--Savita And Friends(最小直径生成树MDST)
    Hackerrank--Kundu and Tree
    Hackerrank--String Function Calculation(后缀数组)
    Hackerrank--Ashton and String(后缀数组)
    Foundation 学习
    JS 严格模式
    判断移动设备横竖屏
    Nodejs解析HTML网页模块 jsdom
    百度Map调用
    Jade 报错
  • 原文地址:https://www.cnblogs.com/nowheretrix/p/9622141.html
Copyright © 2011-2022 走看看