알고리즘/JM북
p270 두니발 박사의 탈옥
quantdave
2017. 2. 13. 16:11
미완성
#include<iostream>
using namespace std;
int C,n,d,p;
int g[51][51];
int dp[101][101];
double degree[101];
int gogo(int here, int days)
{
if(days == d)
{
if(here==p)
return 1;
else return 0;
}
int &ret = dp[here][days];
if(ret > -0.5) return ret;
double ans = 0;
for(int i = 0 ; i<n;i++)
{
if(g[here][i]==1)
{
ans += gogo(i, days+1) / degree[here];
}
}
return (ret = ans);
}
int main()
{
cin>>C;
while(C--)
{
cin>>n>>d>>p;
for(int i=0; i<n; i++)
{
for(int j=0; j<n; j++)
{
cin>>g[i][j];
if(g[i][j]==1)
{
degree[i]++;
degree[j]++;
}
}
}
double v = -1.0;
memset(dp,v,sizeof(dp));
}
}