依次枚举每个不能走过的点,DP递推下一步情况,求出所有其他点的概率之和即为这个点不会被走过的概率。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define LL long long #define inf 1<<29 using namespace std; struct node { int u,v; int next; }edge[250000]; int n,m,d; int num; int head[55]; int sum[55]; double dp[11111][55]; void addedge(int u,int v) { edge[num].u=u; edge[num].v=v; edge[num].next=head[u]; head[u]=num++; edge[num].u=v; edge[num].v=u; edge[num].next=head[v]; head[v]=num++; } int main() { int t; int u,v; scanf("%d",&t); while(t--) { scanf("%d%d%d",&n,&m,&d); num=0; memset(head,-1,sizeof(head)); memset(dp,0,sizeof(dp)); memset(sum,0,sizeof(sum)); for(int i=0;i