栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 1189 钉子和小球

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 1189 钉子和小球

#include<iostream>using namespace std;long long a[51][51]; //表示概率的分子 long long b[51][51]; //表示概率的分母 //将(i,j) 处的概率的1/2传递到(i+1,t) void transmit(int i, int j, int t){long long temp = b[i][j]<<1;if(a[i+1][t]){if(b[i+1][t] != temp){if(b[i+1][t] < temp){ while(b[i+1][t] < temp) {          a[i+1][t] <<= 1;  b[i+1][t] <<= 1;  }  a[i+1][t] += a[i][j];}else{long long temp_a = a[i][j];while(temp < b[i+1][j]){temp <<= 1;temp_a <<= 1;}a[i+1][t] += temp_a;}}else{a[i+1][t] += a[i][j];}}else{a[i+1][t]=a[i][j];b[i+1][t]=temp;}}long long gcd(long long a, long long b){long long temp;while(b != 0){temp = a;a = b;b = temp % b;}return a;}int main(){int n,m;char ch;//输入数据 cin>>n>>m;//计算概率a[0][0]=1;b[0][0]=1;for(int i=0; i<n; i++) for(int j=0; j<=i; j++) {cin>>ch;if(!a[i][j]) continue;if(ch=='*') // 钉子在{//更新a[i+1][j] b[i+1][j] transmit(i, j, j);//更新a[i+1][j+1] b[i+1][j+1]transmit(i, j, j+1);}else //钉子不在 {a[i+2][j+1]=a[i][j];b[i+2][j+1]=b[i][j];} } long long temp_a = a[n][m]; long long temp_b = b[n][m]; if(!temp_a) cout<<"0/1"<<endl; else {  long g = gcd(temp_a, temp_b);  while(g != 1)  {temp_a /= g;temp_b /= g;g = gcd(temp_a, temp_b);  }  cout<<temp_a<<"/"<<temp_b<<endl; } return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/374527.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号