zoukankan      html  css  js  c++  java
  • CF441E Valera and Number

    想假了的题

    Codeforces
    Luogu

    Description.

    给定一个数 \(x\),每次有 \(\cfrac p{100}\) 的概率 \(x\leftarrow x\times 2\),有 \(1-\cfrac p{100}\) 的概率 \(x\leftarrow x+1\)
    问最后 \(x\) 期望二进制下末尾 \(0\) 的数量。

    Naive Solution.

    首先,根据经典套路来把期望拆成概率乘上对应的权值。
    然后有一个 Naivedp,设 \(dp_{i,x}\) 表示前 \(i\) 次操作,使数变成了 \(x\) 的方案数。
    同时,我们发现有一个性质,就是只有 \(+1\) 操作会使其减少,且 \(+1\) 操作最多进行 \(K\) 次。
    所以我们维护出 \(x\) 的后 \(8\ (2^8=256\ge K)\) 位,然后直接暴力 dp 即可

    最后发现假的离谱
    如果有一个数二进制下是 \(1111111111111111111111111111111111111\),那显然和前面都有关
    然后就假了。
    隔壁的 T 神想了个神仙处理方法,就是枚举末尾有多少个 \(1\),但是无法处理。

    Solution.

    注意,并不一定所有期望题都需要转化成概率带权和,也有可以直接 dp 记录期望的。
    这个 \(+1\) 看似特别无法处理,那么我们不妨考虑绕过它。
    我们可以考虑“贷款”,刚开始现“贷”出几次的操作,然后再慢慢“还债”。
    考虑 dp 状态多加一维,代表当前欠了多少债,另一维仍然代表第 \(i\) 位。
    所以我们在 dp 初始化时就已经知道了最后会有多少个 \(+1\),可以预先处理期望。
    然后每次转移,就考虑当前如果 \(\times2\),那需要还的“债”也 \(\times2\) 了,期望 \(+=1\)
    如果 \(+1\),那就还了一个债,期望不变,最后当然要取“债”还完了的状态了。
    当然,“债”如果无限 \(\times 2\),使其永远也还不起了,那这个状态有什么用呢
    然后就做完了,代码极短,复杂度 \(O(k^2+k\times\log x)\)

    Coding.

    点击查看垃(le)圾(se)代码
    //是啊,你就是那只鬼了,所以被你碰到以后,就轮到我变成鬼了{{{
    #include<bits/stdc++.h>
    using namespace std;typedef long long ll;
    template<typename T>inline void read(T &x)
    {
    	x=0;char c=getchar(),f=0;
    	for(;c<48||c>57;c=getchar()) if(!(c^45)) f=1;
    	for(;c>=48&&c<=57;c=getchar()) x=(x<<1)+(x<<3)+(c^48);
    	f?x=-x:x;
    }/*}}}*/
    const double eps=1e-10;int X,K;double dp[205][205],p,rs=0;
    int main()
    {
    	read(X),read(K),scanf("%lf",&p),p/=100;
    	for(int i=0;i<=K;i++) for(int j=X+i;!(j&1);j>>=1,dp[0][i]++);
    	for(int i=0;i<K;i++) for(int j=0;j<=K;j++)
    		(j?dp[i+1][j-1]+=dp[i][j]*(1-p):p),(j*2<=K?dp[i+1][j*2]+=(dp[i][j]+1)*p:p);
    	return printf("%.10lf\n",dp[K][0]),0;
    }
    
  • 相关阅读:
    Leetcode题解(4):L216/Combination Sum III
    零基础学python-3.1 python基本规则和语句
    3D打印技术之切片引擎(4)
    自己定义struts2中action类型转换器
    Android开发之实现锁屏功能
    用户上传本地磁盘中的一个图片文件作为头像
    微博达人硅谷之歌:Testin云測移动搜索性能測试非常是让人信服
    读《疯狂Java讲义》笔记总结三
    这才是爱情最好的样子
    数据挖掘 与 Web开发何去何从
  • 原文地址:https://www.cnblogs.com/pealfrog/p/15036838.html
Copyright © 2011-2022 走看看