Noip 模拟 12 2018/10/30

T1:
华华和秀秀在玩纸牌游戏,游戏的规则如下:
初始时,桌面上有 n 张纸牌,每张纸牌上写有一个正整数。游戏开始时华华先在黑板上写上数字 0,之后秀秀和华华轮流选取纸牌(秀秀先手)。当一个人选定一张纸牌时,他需要将黑板上的数字改写成这个数和纸牌上的数的最大公约数,然后将这张纸牌丢弃。当一个人写下了 1 或者无法选取纸牌时,他就输了。
现在秀秀想知道:1. 当华华和秀秀都按照随机策略选取卡片时,秀秀获胜的概率有多少;
2. 当华华和秀秀都按照最优策略选取卡片时,秀秀获胜的概率有多少。

第一问:设 f [ i ] [ j ] f[i][j] f[i][j] 表示选了 i i i 个数, gcd ⁡ \gcd gcd j j j 的概率
显然 f [ i + 1 ] [ j ] = f [ i ] [ j ] ∗ ( s [ j ] − i ) n − i f[i+1][j]=f[i][j]*\frac{(s[j]-i)}{n-i} f[i+1][j]=f[i][j]ni(s[j]i) s [ j ] s[j] s[j] 表示含有 j j j 这个因子的数的个数
f [ i + 1 ] [ k ] = f [ i ] [ j ] n − i f[i+1][k]=\frac{f[i][j]}{n-i} f[i+1][k]=nif[i][j] k k k 为枚举的 a [ l ] a[l] a[l] j j j gcd ⁡ \gcd gcd,且 k ! = j k!=j k!=j
统计 j = 1 j=1 j=1 n n n 为奇数时的概率即可
第二问:先将 a [ i ] a[i] a[i] 两两取 gcd ⁡ \gcd gcd,然后留下删去是其他 gcd ⁡ \gcd gcd 倍数的 gcd ⁡ \gcd gcd,即为基数团;如果有一个数,如果它的所有基数出现的个数都为奇数,那么一定可以让游戏在奇数次内结束,即秀秀必胜,反之必败

T2:秀秀的森林(forest)
秀秀有一棵带 n 个顶点的树 T,每个节点有一个点权 ai。
有一天,她想拥有两棵树,于是她从 T 中删去了一条边。
第二天,她认为三棵树或许会更好一些。因此,她又从她拥有的某一棵树中删去了一条边。
如此往复,每一天秀秀都会删去一条尚未被删去的边,直到她得到由 n 棵只有一个点的树构成的森林。
秀秀定义一条简单路径(节点不重复出现的路径)的权值为路径上所有点的权值之和,一棵树的直径为树上权值最大的简单路径。秀秀认为树最重要的特征就是它的直径。所以她想请你算出任一时刻她拥有的所有树的直径的乘积。因为这个数可能很大,你只需输出这个数对 1 0 9 + 7 10^9+7 109+7 取模之后的结果即可。

表示对 n 2 n^2 n2 能水 80 80 80% 表示吃惊
两棵子树合并时,最长链只可能是子树的最长链,或两个子树 4 个最长链的起点相互间的链
那么就只需要存下每个子树的最长链的两个端点,在原树上跑 l c a lca lca 取最大值即可

T3:秀秀的照片(photo)
华华在和秀秀视频时有截很多图。华华发现秀秀的每一张照片都很萌很可爱。为什么会这样呢?华华在仔细看过秀秀的所有照片后,发现秀秀的照片都具有一个相同的性质。
设秀秀的分辨率为 m×n,即在水平方向上每一行有 m 个像素,垂直方向上每一列有 n 个像素,照片共有 m×n 个像素。每一个像素都有一个颜色,共有
k 种颜色。华华宝宝发现无论是沿着哪两列像素的分界线将秀秀的照片分成左右两半(共有 m−1 种分法),左右两半不同颜色的种数都是相同的。
华华宝宝把自己的发现告诉了秀秀宝宝。现在秀秀想知道当照片分辨率为 m×n,像素颜色种数为 k(不一定 k 种颜色都出现)的时候,共有多少张不同的照片满足上面的性质。
由于答案可能很大,你只需输出答案对 1 0 9 + 7 10^9+7 109+7 取模的结果即可。

可以发现,中间的像素一定是最外面两列像素交集的子集
枚举交集个数 i i i,旁边两列个数 i + j i+j i+j,显然中间的像素有 i i i 中取值法
那么怎么将 i + j i+j i+j 填入 n n n 并且每种颜色至少有一个
问题可以转化为 n n n 个球放入 i + j i+j i+j 个有序的篮子里
发现第二类斯特林数是将 n n n 个球放入 i + j i+j i+j 个无差别的篮子里,那么用第二类斯特林数乘上 ( i + j ) ! (i+j)! (i+j)! 即可
所以得到式子 C k i × C k − i 2 × j × C 2 × j j × i n × ( m − 2 ) × ( S 2 [ n ] [ i + j ] × ( i + j ) ! ) 2 C_{k}^{i}\times C_{k-i}^{2\times j}\times C_{2\times j}^{j}\times i^{n\times (m-2)}\times (S_2[n][i+j]\times (i+j)!)^2 Cki×Cki2×j×C2×jj×in×(m2)×(S2[n][i+j]×(i+j)!)2

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值