不明觉厉

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
#include<math.h>
using namespace std;
#define inf 0x3f3f3f3f
#define ll __int64

double dp[1005][1005];
int main()
{
	int n,s;
	cin>>n>>s;
	int i,j;
	for(i=n;i>=0;i--)
		for(j=s;j>=0;j--)
		{
			double k=(double)(n*s);
			if(i==n&&j==s) dp[i][j]=0;
			else dp[i][j]=(1+dp[i+1][j]*(n-i)*j/k+dp[i][j+1]*i*(s-j)/k+dp[i+1][j+1]*(n-i)*(s-j)/k)/(1-i*j/k);
		}
	printf("%.4lf\n",dp[0][0]);
	//system("pause");
}