• BNU-2017.7.3排位赛1总结


    比赛链接:https://www.bnuoj.com/v3/contest_show.php?cid=9146#info

    A题

    国际象棋棋盘,黑白相间染色。

    B题

    最大值只取决于每个连通块的大小,一个连通块大小是k,它就会让结果乘以2^(k-1)。

    C题

    概率dp。居然第二天又考到没看出来。设dp[i]表示i变成1的的期望次数。

    dp[i]=(1/k)Σ(dp[i/j]+1)。j是i的因子。

    D题

    本来以为是数学公式题,后半场才发觉可以状态转移。dp[n][g][k]表示n个人分成g组,每组人数在[1,k]之间的方案数。先memset(dp,0),然后dp[1][1][k]=1。

    然后dp[n][g][k]=Σdp[n-i][g-1][k], 1<=i<=k。然后用这个dp可以推出结果。

    更具体一点,两个兵种的分组数量只有四种情况,ababa,babab,abab,baba。然后枚举分组数量,根据刚才的dp推一下结果。

    E题

    以重心为原点做极角序。

    F题

    对于每个查询,枚举最短边,然后做Kruskal,直到源点到汇点连通。注意多组数据。

    G题

    因为置换满足结合律,所以可以求出一次置换,然后做m次方的快速幂。

    H题

    贪心的策略模拟打牌。

    I题 

    网上找的题解没看懂,还是用自己的笨办法吧。

    能组成三角形的分为三种情况:三条边互不相等的,有两条边相等的,三条边都相等的。

    对于三条边互不相等的,长度为i的有几个可以处理出来,然后用卷积处理处和为k的有几个。然后减去有相等的方案数,然后除以2,变成组合数。然后枚举最大边的长度,用卷积结果的后缀和减去不合要求的方案数(不合要求的方案数包括有一条边比这条边大、有两条边比这条边大的情况)。

    对于有两条边相等的,枚举相等的两条边的长度,用树状数组求对应区间的和,然后扣除自己那一个点。

    对于三条边都相等的,直接枚举边的长度。

  • 相关阅读:
    PHP 指定的 CGI 应用程序由于未返回完整的一组 HTTP 头而产生错误行为。
    BPM触发事件
    封装继承多态到底讲的是什么
    .Net 为什么叫.Net 转载自 jerrylsxu 的博客
    C# 琐碎记忆 Message
    SQL Case
    C# 命名规范(部分)
    C# 反射
    C# 日志 log 配置文件
    C# 琐碎记忆 三元表达式
  • 原文地址:https://www.cnblogs.com/acmsong/p/8157334.html
Copyright © 2020-2023  润新知