zoukankan      html  css  js  c++  java
  • POJ2096 Collecting Bugs

    题目链接

    题意

    有n个bug和s个系统。每天会等概率的在某个系统中找一个某一个bug。问找到全部n个bug并且在每个系统中都找到bug的期望天数。

    思路

    f[i][j]表示在j个系统中找到了i个bug的期望天数。

    某天有四种可能:
    1.在新的系统中找到新的bug,概率为(frac{(n-i) imes(s-j)}{n imes s})
    2.在旧的系统中找到新的bug,概率为(frac{(n-i) imes j}{n imes s})
    3.在新的系统中找到旧的bug,概率为(frac{i imes (s-j)}{n imes s})
    4.在旧的系统中找到旧的bug,概率为(frac{i imes j}{n imes s})

    即$$f[i][j]=
    f[i+1][j+1] imes frac{(n-i) imes(s-j)}{n imes s} +
    f[i + 1][j] imes frac{(n-i) imes j}{n imes s} +
    f[i][j + 1] imes frac{i imes (s-j)}{n imes s} +
    f[i][j] imes frac{i imes j}{n imes s} + 1

    [ 左右都有$f[i][j]$,移项并同乘$n imes s$得 $$f[i][j] imes (n imes s -i imes j)= \ f[i+1][j+1] imes (n-i) imes(s-j) + \ f[i + 1][j] imes (n-i) imes j + \ f[i][j + 1] imes i imes (s-j) + \ n imes s ]

    [f[i][j] =frac{f[i+1][j+1] imes (n-i) imes(s-j) +f[i + 1][j] imes (n-i) imes j + f[i][j + 1] imes i imes (s-j) + n imes s}{n imes s} ]

    转移即可。lj POj的评测姬,在(G++)下输出(lf)(wa)

    代码

    /*
    * @Author: wxyww
    * @Date:   2019-05-14 15:24:19
    * @Last Modified time: 2019-05-14 15:59:55
    */
    #include<cstdio>
    #include<iostream>
    #include<cstdlib>
    #include<cstring>
    #include<algorithm>
    #include<queue>
    #include<vector>
    #include<ctime>
    using namespace std;
    typedef long long ll;
    const int N = 1010;
    ll read() {
    	ll x=0,f=1;char c=getchar();
    	while(c<'0'||c>'9') {
    		if(c=='-') f=-1;
    		c=getchar();
    	}
    	while(c>='0'&&c<='9') {
    		x=x*10+c-'0';
    		c=getchar();
    	}
    	return x*f;
    }
    double f[N][N];
    int main() {
    	int n,s;
    	while(~scanf("%d%d",&n,&s)) {
    		for(int i = n;i >= 0;--i) {
    			for(int j = s;j >= 0;--j) {
    				if(i == n && s == j) continue;
    				f[i][j] = 
    					(f[i + 1][j + 1]* (n - i) * (s - j)  + //在新系统里发现新漏洞
    					f[i + 1][j] * (n - i) * j  + //在旧系统里发现新漏洞
    					f[i][j + 1]* i * (s - j)  + //在新系统里发现旧漏洞
    					+ n * s) //在旧系统发现旧漏洞
    					/ (n * s - i * j );
    			}
    		}
    		printf("%.4lf
    ",f[0][0]);
    	}
    	return 0;
    }
    
  • 相关阅读:
    Extjs4 关于设置form中所有子控件为readOnly属性的解决方案
    Chrome调试(转)
    ExtJS4 动态加载
    CSS display和visibility的用法和区别
    利用Java调用OpenCV进行人脸识别
    Mac上安装openCV(Java版本)
    关于mysql的Fetch Time 和 Duration Time
    数据库相关中间件介绍
    JVM和java应用服务器调优
    探索 ConcurrentHashMap 高并发性的实现机制
  • 原文地址:https://www.cnblogs.com/wxyww/p/10862886.html
Copyright © 2011-2022 走看看