链接:
https://nanti.jisuanke.com/t/17308
题意:
有4种天气状态,然后给你一个4
*4的矩阵,
Aij
代表从第i个状态变为第j个状态的概率,然后前两行问你接下来的k天的天气为这些状态的概率,然后后两个询问为天气状态一直保持在同一状态的天数期望。
思路:
对于第一种询问给出的a b c d e f
,直接输出
Aab×Abc×Acd×Ade×Aef
即可,然后对于第二种询问,直接输出
Aii1−Aii+1
即可。
实现:
#include <bits/stdc++.h>
using namespace std;
int main() {
double a[7][7];
int num[27], cnt;
char s[1007];
for(int i=1 ; i<=4 ; i++) for(int j=1 ; j<=4 ; j++) scanf("%lf", &a[i][j]);
getchar();
int t = 2;
while(cnt = 0, t--) {
gets(s);
for(int i=0 ; s[i] ; i++) if(isdigit(s[i])) num[cnt++] = s[i]-'0';
double ans = 1.0;
for(int i=1 ; i<cnt ; i++) ans *= a[num[i-1]][num[i]];
printf("%.8f\n", ans);
}
t = 2;
while(t--) {
scanf("%d", &cnt);
printf("%.8f\n", a[cnt][cnt]/(1-a[cnt][cnt])+1);
}
return 0;
}