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,变成组合数。然后枚举最大边的长度,用卷积结果的后缀和减去不合要求的方案数(不合要求的方案数包括有一条边比这条边大、有两条边比这条边大的情况)。

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

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

posted @ 2017-12-31 11:38  ACMsong  阅读(150)  评论(0编辑  收藏  举报