题目大意:
现在有nnn个兔子抢胡萝卜,nnn个兔子初始质量分别为wiw_iwi,每次会有一个兔子胜出,然后它只一个萝卜质量w+1w+1w+1,每回合第 iii 个兔子生出的概率为:wi∑j=1nwj\frac {w_i} {\sum_{j=1}^{n}w_j}∑j=1nwjwi现在问kkk天之后,兔子们体重的期望。
分析:
考虑kkk天增长的体重总量为kkk,所以第iii只兔子的体重期望为:wi+k∗wi∑j=1nwjw_i + k*\frac {w_i} {\sum_{j=1}^{n}w_j}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;
}