题目大意:
现在有 n个兔子抢胡萝卜, n个兔子初始质量分别为 wi,每次会有一个兔子胜出,然后它只一个萝卜质量 w+1,每回合第 i 个兔子生出的概率为: ∑j=1nwjwi现在问 k天之后,兔子们体重的期望。
分析:
考虑 k天增长的体重总量为 k,所以第 i只兔子的体重期望为: wi+k∗∑j=1nwjwi
#include <iostream>
using namespace std;
const int maxn = 1000052;
long long int w[maxn], sum;
int main() {
int n, k, T;
cin >> T;
while (T--) {
cin >> n >> k;
sum = 0;
for (int i = 0; i < n; i++) {
scanf("%lld", &w[i]);
sum += w[i];
}
for (int i = 0; i < n; i++) {
if (i != 0) {
printf(" ");
}
printf("%lf", w[i] + w[i] * k * 1.0 / sum);
}
printf("\n");
}
return 0;
}