您的位置:首页 > 编程语言 > C语言/C++

NOI 191钉子和小球.cpp

2016-04-09 09:41 507 查看
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long f[101][101];
int n,m;
char c;
long long gcd(long long ,long long );
int main()
{
scanf("%d%d",&n,&m);
f[1][1]=(long long)1<<n;
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
{
do
{
scanf("%c",&c);
}
while(c!='*'&&c!='.');
if(c=='*')
{
f[i+1][j]+=f[i][j]/2;
f[i+1][j+1]+=f[i][j]/2;
}
else if(c=='.')
f[i+2][j+1]+=f[i][j];
}
long long x=gcd(f[n+1][m+1],(long long)1<<n);
long long k=((long long)1<<n)/x;
cout<<f[n+1][m+1]/x<<"/"<<k<<endl;
return 0;
}
long long gcd(long long x,long long y)
{
if(x%y==0)  return y;
return gcd(y,x%y);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: