这题刚开始是没思路,后来觉得是DP,连DP方程都想出来,还考虑了各种优化方法,可是觉得实现难度有点大,所以先查解题报告。。。。结果一查,网上有人的代码异常简单,只有几行代码,所以马上意识到考虑复杂了,转而找规律,才算了几组,规律就出来了,就是1/(m*k+1+k)。so easy?
/* * hdu4015/win.cpp * Created on: 2012-11-8 * Author : ben */ #include <cstdio> #include <cstdlib> #include <cstring> #include <cmath> #include <ctime> #include <iostream> #include <algorithm> #include <queue> #include <set> #include <map> #include <stack> #include <string> #include <vector> #include <deque> #include <list> #include <functional> #include <numeric> #include <cctype> using namespace std; int main() { #ifndef ONLINE_JUDGE freopen("data.in", "r", stdin); #endif int T, m, k; scanf("%d", &T); for(int t = 1; t <= T; t++) { scanf("%d%d", &m, &k); printf("Case #%d: %.8f\n", t, 1.0 / (1.0 + m * 1.0 * k + k)); } return 0; }