| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
大家帮忙看看为什么总是WA呢,谢谢了.#include<iostream>
#include<math.h>
using namespace std;
double array[110][2];
double backup[110];
long c, m, n;
solve()
{
long i, j;
bool f;
i = 1;
while(n--)
{
if(i == 0)
{
array[i+1][1] += array[i][0] * (1.0 - (double)((double)i/(double)c));
i+=2;
}
for(;i < c;i+=2)
{
array[i-1][1] += array[i][0] * (double)((double)i/(double)c);
array[i+1][1] += array[i][0] * (1.0 - (double)((double)i/(double)c));
}
if(i == c)
{
array[i-1][1] += array[i][0] * (double)((double)i/(double)c);
}
for(j = 0;j <=c; j++)
{
if(fabs(backup[j] - array[j][1]) >= 0.0005)
break;
}
if(j > c)
{
/* for(j = 0;j <= c;j++)
{
array[j][0] = array[j][1];
}
*/
return;
}
// else
// {
// cout << "BACK:" << backup[j] << " ARRAY[1]:" << array[j][1] << endl;
// }
// cout << "N=" << n << endl;
for(j = 0;j <= c;j++)
{
backup[j] = array[j][0];
array[j][0] = array[j][1];
array[j][1] = 0.0;
// cout << array[j][0] << ' ';
}
// cout << endl;
if(i % 2 == 1)
i = 0;
else
i = 1;
}
n = 1;
}
main()
{
long i, j;
while(1)
{
cin >> c;
if(c == 0)
return;
cin >> n >> m;
cout.setf(ios_base::fixed, ios_base::floatfield);
cout.precision(3);
if(m > c)
{
cout << 0.000 << endl;
continue;
}
for(i = 0;i <= c;i++)
{
backup[i] = 1.0;
array[i][0] = 0.0;
array[i][1] = 0.0;
}
array[1][0] = 1.0;
n--;
solve();
cout.setf(ios_base::fixed, ios_base::floatfield);
cout.precision(3);
// cout << "N=" << n << endl;
cout << array[m][(n+1)%2] << endl;
}
}
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator