SRM460 Div2Med TheFansAndMeetingsDivTwo
解法
互いに (i)場所を選び (ii)ファンの人数 a, b を選び (iii)ファンの人数が一致する(a = b)とき (iv) それぞれ 1 / (ファンの人数の範囲) を足し合わせる。
class TheFansAndMeetingsDivTwo { public: double find(vector <int> minJ, vector <int> maxJ, vector <int> minB, vector <int> maxB) { double N = minJ.size(); double ans = 0.; for(int i=0; i<N; i++) for(int k=minJ[i]; k<=maxJ[i]; k++) for(int j=0; j<N; j++) for(int l=minB[j]; l<=maxB[j]; l++) if(k == l) { ans += (1./N)*(1./N)*(1./(maxJ[i]-minJ[i]+1))*(1./(maxB[j]-minB[j]+1)); } return ans; } };