讲解看这里
交 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;
}