zoukankan      html  css  js  c++  java
  • 牛客网暑期ACM多校训练营(第一场)

    Rank Solved A B C D E F G H I J
    67/338 3/10 O Ø Ø O Ø Ø Ø Ø Ø O

    O: 当场通过

    Ø: 赛后通过

    .: 尚未通过

    A Monotonic Matrix

    solved by chelly


    chelly's solution

    比赛的时候是OEIS找规律过的
    我们把n*m的矩阵画出来并建立坐标系,左下角的点是(0,0),右上角的点是(n,m);考虑01和12的分界线,是两条从(0,0)走到(n,m)的每次向右向上的折线,但是要求01折线要在12折线左边(但不严格),为了严格,我们把12折线向右向下平移一格,即从(-1,1)移动到(n-1,m+1)。套用行列式容斥定理即可计算出方案数。

    B Symmetric Matrix

    upsolved by chelly


    chelly's solution

    还是OEIS找规律过的
    非常喵的idea,原来给的矩阵描述其实是一个邻接矩阵的描述,于是问题转化成了:请计算有多少个无向图满足所有点的度数都为2
    进一步分析性质,这个图应该是有若干个环组成,我们可以DP计数
    (dp[i])表示有i个点的图的个数,然后可以枚举最后一个点所在环的大小进行转移

    C Fluorescent 2

    upsolved by chelly


    chelly's solution

    (X_i)表示灯i是否亮,需要求的是(E(sum(X_i)^3))

    (E(sum(X_i)^3)=E(sum X_i X_j X_k )=sum P(X_i X_j X_k )) (因为是01分布)

    (P(X_i X_j X_k ))表示灯i,j,k同时都亮的概率,我们要怎么求这个概率呢?

    我们可以写出一个矩阵(A_{i,j}),表示第i个按钮能否控制第j个灯

    我们抽出i,j,k这三列,问题就变成了:有n个数字,每个数字3个bit,随便取子集,问子集里的数字异或结果0的概率。这个显然就是((frac{1}{2})^{rank})

    但问题是直接枚举是(O(m^3))的,无法通过。

    我们可以考虑枚举第i列,然后用它消其它所有列,把所有列消元过的情况丢到一个map里统计,根据rank不同来计数。

    D Two Graphs

    solved by chelly


    chelly's solution

    考虑枚举点的映射关系,但是容易发现有重复,于是我们可以把对应的边放入到一个vector里进行hash

    E Removal

    upsolved by chelly


    chelly's solution

    (dp[i][j])表示做完了前i个数,已经删除了j个数的不同子序列数目
    转移考虑在目前的结果后面装上什么数字,于是(dp[i][j])可以转移到(dp[next(i,num)][j+next(i,num)-i])
    其中next(i,j)表示在位置i后面的最近的一个数字j的位置
    时间复杂度(O(nm^2))

    F Sum of Maximum

    upsolved by chelly


    chelly's solution

    分段讨论贡献,需要计算自然数幂和,用拉格朗日插值,比赛中hls被卡常了,要注意拉格朗日插值的写法是可以去掉log的。

    G Steiner Tree

    upsolved by chelly


    chelly's solution

    H Longest Path

    upsolved by chelly


    chelly's solution

    很容易想到做两次树形DP,down[u]和up[u]分别表示从上往下和从下往上做的最优值
    注意到求up的时候转移复杂度很高,可以用斜率优化降低复杂度
    时间复杂度(O(n))

    I Substring

    upsolved by chelly


    chelly's solution

    字符集只有3种,我们可以枚举3!=6种映射方式得到6个字符串
    我们发现在这些字符串的子串里,除了个别字符串外,其它所有本质不同的子串都出现了6次
    对于那些由单个元素组成的子串,出现了3次
    于是问题的关键就是:有若干个母串,问本质不同的子串的个数是多少个
    直接建立广义后缀自动机,计算每个节点的(sum{maxlen-minlen+1})即可
    时间复杂度(O(n))

    J Different Integers

    solved by chelly


    chelly's solution

    莫队水过,也可以用离线BIT搞

    Replay

    这场比赛由chelly,syf,ch在线上打的,达成了云训练的成就(雾)
    开场chelly跟榜开J题,准备用莫队莽一波,然后被卡了读入,加了快读就过了。syf和ch开场就一直苦思冥想A题,然而未果,syf和ch跟榜读D,但是涉及离散数学并不能看懂题面,于是丢给了chelly,丢给chelly后syf继续搞A,ch搞F。chelly读了D题后,觉得暴力一下点的映射关系就行,但想不到如何去除多余的计数。chelly苦思冥想后,想到了用hash边解决,于是A掉了D题。期间ch发现F可搞,chelly和ch交流了一波之后,hls觉得十分正确,于是推式子去写了。chelly和syf继续攻A,chelly继续想他的组合计数,syf继续想他的DP,但都未果。这时ch发现需要计算自然幂和,但ch不会,于是chelly向ch丢出了拉格朗日插值的解法,ch看懂后一边叫着玄学算法一边把程序码出来了。然而无奈被卡常直到终场……在比赛快结束的时候,chelly不像当老实人了,借助OEIS对A题的小结果进行xjb猜,猜出了结果,交上去A了。于是chelly更不老实了,暴力跑出了B的小结果,继续用OEIS把B题秒了。(但比赛已经结束了5分钟)

    chelly


    被打自闭了啊TAT
    希望队友能多补补题

  • 相关阅读:
    uniapp 分包加载
    input和textarea中的placeholder与光标位置不一致问题
    uniapp调取摄像头扫码和生成二维码
    uniapp分享功能加传递参数
    js将后台传递的数组添加自定义的键值对
    uniapp返回上一层级带参数
    引入的字体文件包太大
    直接给变量赋值接口数据
    富文本编辑器上传不了微信文件夹的图片,使用vue-quill-editor编辑器
    博客园样式修改
  • 原文地址:https://www.cnblogs.com/Amadeus/p/9347936.html
Copyright © 2011-2022 走看看