您的位置:首页 > 其它

HRBEU/HEUOJ----1059 France '98

2012-07-18 19:09 211 查看
水概率题,刚开始学ACM的时候根本没头绪,现在拿出来再看看,果断1A。

#include <iostream>
#include <cstring>
#include <cstdio>

#define N 16

using namespace std;

char name
[20];
double R

;
struct node{
double rad
;
}tree[2*32];

void Cal(int l,int r,int k){
for(int i=0;i<N;i++)
for(int j=0;j<N;j++){
tree[k].rad[i]+=tree[l].rad[i]*tree[r].rad[j]*R[i][j]/(double)1e4;
tree[k].rad[j]+=tree[l].rad[i]*tree[r].rad[j]*R[j][i]/(double)1e4;
}
return ;
}

int main(){
for(int i=0;i<N;i++)
scanf("%s",name[i]);
for(int i=0;i<N;i++)
for(int j=0;j<16;j++)
scanf("%lf",&R[i][j]);
memset(tree,0,sizeof(tree));
for(int i=N;i<2*N;i++)
tree[i].rad[i-N]=100;
for(int i=N;i>1;i/=2)
for(int j=i;j<2*i;j+=2)
Cal(j,j+1,j/2);
for(int i=0;i<N;i++){
printf("%s",name[i]);
for(int j=0;j<10-strlen(name[i]);j++)
printf(" ");
printf(" p=%.2lf%%\n",tree[1].rad[i]);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tree ini struct