zoukankan      html  css  js  c++  java
  • 2018 Multi-University Training Contest 6

    Rank Solved A B C D E F G H I J K L
    75/802 4/12 O O . Ø . Ø . Ø O . Ø O

    O: 当场通过

    Ø: 赛后通过

    .: 尚未通过

    A oval-and-rectangle

    solved by ch


    ch's solution

    积分一下,答案就是(2a+pi b)

    B bookshelf

    solved by chelly&ch


    chelly's solution

    首先经过推导可以知道(score=2^{F(gcd(beauty1,beauty2,...,beautyk))}-1)
    于是就可以枚举gcd,然后计算有多少组满足这个gcd
    这就是个经典的容斥问题了

    C Ringland

    unsolved


    D Shoot Game

    upsolved by chelly


    chelly's solution

    首先按照极角坐标排序离散化一下,然后dp[i][j]表示ij之间被包含的完整区间都被覆盖的最小花费,转移的时候考虑枚举ij内能量最大的那个板子,把它打断。

    E black-and-white

    unsolved


    F foam-transformation

    upsolved by chelly


    chelly's solution

    主要就是分析一个数组是acid的需要满足什么性质
    给一个数组加上一个平方序列,不是很好分析,我们可以考虑将它们都差分来分析,然后再还原回去
    将平方序列差分3次发现变成了1 1 0 0 0 0...,于是问题变成了我们先将原数组差分三次,然后在差分数组上我们可以将两个相邻的位置都+1或者都-1,问是否可能全变成0
    容易发现这等价于看差分数组的奇数位和偶数位的和是否一样
    但是现在的问题还是不好处理,主要有个差分3次在这里,我们注意到题面莫名其妙地在后面加了5个0,我们从这开始分析
    注意到如果某个序列最后一位是0,那么设它的错位和(奇数位和-偶数位和)为x,那么差分一次的错位和为2x
    所以如果某个序列最后有3个0,那么差分三次的错位和就是8x,这也就是说我们想要判断三次差分的错位和是否为0就等价于判断原序列的错位和是否为0

    综上所述,原数组的一个区间是acid的当且仅当这个区间的错位和为0
    我们可以给奇数位置的权值变为-1,那么就是区间和问题了,等价于找前缀和相同的两个位置
    关于修改,发现就是两个位置的单点修改,问题就解决了

    G Variance-MST

    unsolved


    H Rectangle Outline

    upsolved by chelly


    chelly's solution

    首先只有外围轮廓下,线段不会很多,最多就8n,所以在线段树的过程中,我们可以抠出所有边界,若目前边界数>8n,那么说明不合法直接退出
    否则我们只需要对于剩下的边界去check是否恰好为一个环即可,一个dfs即可
    这里主要说一下如何抠出所有边界
    我们两次扫描线,一次扫横着的线,一次扫竖着的线,下面以扫竖着的线为例
    我们将所有竖着的线段按照横坐标从小到大排序(坐标相同的情况下,新增的线段先,删去的线段后)
    然后对于每个X对应的线段,我们在线段树找出那些0->1或者1->0的位置,这些位置就是进/出边界,我们把它们取出来,然后排序合并一下就可以得到横坐标为X下的那些竖着的边框

    I Werewolf

    solved by chelly&ch


    首先要明白题目给的是一个基环内向树
    每个人都有可能是狼(所以没有人一定是村民),于是问题的主要就是判断哪些人必定是狼
    考虑那个唯一的环,当前仅当这个环上有一个人被指认是狼,其他人被指认是村民,那么可以确认出一只铁狼
    然后找出它所在的子树,向上的好人链上的所有点都是铁狼

    J Chopping hands

    unsolved


    K sacul

    upsolved by chelly


    chelly's solution

    首先利用Lucas定理得知,若(i)(j)有边,也就是(i)(j)在p进制下的每一位,i都大于等于j。
    考虑如何计算F[n][k],对于(H[i][j]),这个其实表示从i走恰好k步走到j的方案数,容易知道恰好每个数字在p进制下都有n位,而且n位是独立的,对于一位来说,其实就是(0<=x_1<=x_2<=x_3...<=x_k<p)的方案数,直接组合数计算
    于是
    后面是等比数列求和

    L Pinball

    solved by chelly


    chelly's solution

    转换一下坐标系,就成了一个简单的问题

    Replay

    本场由chelly、ch线下打的。
    开场ch推出了A的式子,chelly写了一发然后提交,发现WA,仔细分析发现是输出的问题,改了一下过了。之后两人共同考虑L,chelly提出了变换坐标系的做法,觉得十分可行,然后就去吃了个饭,吃完回来敲了一下1A。之后ch和chelly共同思考I题,两人互相交流了一下发现的性质,chelly写了个基环外向树就1A了。最后ch推了下B题的式子,发现到最后就是一个经典的莫比乌斯反演,chelly就去敲了,经过一些奇怪的错误后,A了。

  • 相关阅读:
    POJ 1659 Frogs' Neighborhood (贪心)
    HDU 2544 最短路 (Floyd)
    CodeForces 632C Grandma Laura and Apples (模拟)
    CodeForces 731F Video Cards (数论+暴力)
    CodeForces 731C Socks (DFS或并查集)
    CodeForces 731B Coupons and Discounts (水题模拟)
    CodeForces 731A Night at the Museum (水题)
    UVaLive 6834 Shopping (贪心)
    zzuli 1484 继续双线
    zzuli 1875多线DP
  • 原文地址:https://www.cnblogs.com/Amadeus/p/9474548.html
Copyright © 2011-2022 走看看