如果您不知道这题是啥我建议您别做,这是个臭题。
我的做法是处理出如果一个点在一个大于1的强连通分量中的重复走边权。这玩意必须用double。
scanf("%d%d%d%lf",&u,&v,&w,&x); tmp=0.0; t=w;//tmp是double t是int while(t) {tmp+=t; t*=x;} add(u,v,w,floor(tmp));
然后图好像不一定联通。
有问题或者想知道我的具体做法可以回复或者私信。