zoukankan      html  css  js  c++  java
  • 【清华集训2014】玛里苟斯

    题意

    做法

    结论1:结果是整数或整数+(frac{1}{2})

    证明:
    假设(n)个数对应线性基的大小为(base)
    考虑对于任意能表示出来的数(x),对于除线性基外元素的任意(2^{n-base})种取法后,在线性基里取,都有唯一一种方法将(x)表示出来
    故每个数出现的方案数均为(2^{n-base}),出现的概率为(2^{-base})
    (ans=(sumlimits_{x能被线性基表示}x^k) imes 2^{-base})
    (x^k=(sum 2^{x_i})^k),其中(x_i)表示的是(x)的有效位
    每个括号内选取一个单项式,即(2^{sumlimits_{i=1}^k a_i})
    (|{a}|=c),我们抛开其他所有位置,单纯看({a}),有(2^{base-c})(x)中有({a}),贡献就为(2^{sumlimits_{i=1}^k a_i} imes 2^{base-c} imes 2^{base}=2^{sumlimits_{i=1}^k a_i} imes 2^{-c})
    (|{a}|=c),若不是整数,只有两种情况:(c=1,{a}={0})(c=2,{a}={0,1})

    再来考虑这道题

    • (k=1)
      单独考虑每一位上的(1),我们都有(2^{n-base} imes 2^{base-1}=2^{n-1})中方法取到,概率为(2^{-1})
      答案即为(sum 2^i imes 2^{-1})(其中(i)为线性基上存在第(i)位)
    • (k=2)
      (ans=sumsum 2^{i+j}P_{i,j})(P_{i,j})是系数),与(k=1)类似
    • (kge 3)
      考虑边界情况(k=3),由于答案(<2^{63}),仅考虑({a}=1,{a}={base-1})的情况
      (2^{3(base-1)} imes 2^{-1}<2^{63}),故(basele 22),而因为我们仅考虑了一种可能的(x),所以实际情况的(base)比这还要小很多
      所以我们可以暴力枚举(2^{base})种可能的(x),再统计(sum x^k imes 2^{-base})
      (x^k)可能会很大,但(x^k imes 2^{-base}<2^{63}),所以我们实际在程序中将(x)表示为(a imes 2^{-base}+b)的形式
  • 相关阅读:
    Java服务器 dm Server
    POI
    系统程序员成长计划写得又快又好的秘诀(四)
    _stati64()获取文件信息
    系统程序员成长计划并发(一)(下)
    KJAVA虚拟机Hack笔记用GTK+实现绘图操作
    系统程序员成长计划写得又快又好的秘诀(六)
    系统程序员成长计划并发(一)(上)
    系统程序员成长计划并发(二)(上)
    系统程序员成长计划并发(二)(下)
  • 原文地址:https://www.cnblogs.com/Grice/p/13032201.html
Copyright © 2011-2022 走看看