poj2096 Collecting Bugs

讲解看这里
交 C++

#include <iostream>
#include <cstdio>
using namespace std;
int n, s;
double dp[1005][1005];
int main(){
	while(scanf("%d %d", &n, &s)!=EOF){
		dp[n][s] = 0;
		for(int i=n; i>=0; i--)
			for(int j=s; j>=0; j--){
				if(i==n && j==s)	continue;
				dp[i][j] = (n*s + dp[i+1][j]*(n-i)*j + dp[i][j+1]*i*(s-j) + dp[i+1][j+1]*(n-i)*(s-j)) / (n*s - i*j);
			}
		printf("%.4lf
", dp[0][0]);
	}
	return 0;
}
原文地址:https://www.cnblogs.com/poorpool/p/8231880.html