UVa 10375 Choose and divide
思路:
排列组合。
#include <cstdio> int main() { int p, q, r, s; while (~scanf("%d %d %d %d", &p, &q, &r, &s)) { if (p - q < q) q = p - q; if (r - s < s) s = r - s; double ret = 1.0; for (int i = 1; i <= q || i <= s; ++i) { if (i <= q) ret = ret * (p - q + i) / i; if (i <= s) ret = ret / (r - s + i) * i; } printf("%.05lf\n", ret); } return 0; }
-------------------------------------------------------
kedebug
Department of Computer Science and Engineering,
Shanghai Jiao Tong University
E-mail: kedebug0@gmail.com
GitHub: http://github.com/kedebug
-------------------------------------------------------