wordpress网站被黑了,嘉兴本地推广网站有哪些,常见的导航网站有哪些,做网站页面一般用什么软件题意 给出方向#xff08;有向#xff09;然后判断从一个点到另一个点的方案数。如果有无数条那么对应位置置为-1 直接先dp处理出来。dp[i][j] sum(dp[i][k]*dp[k][j]) 同时如果两点之间有无限条路径。那么这两点之间必然有一环存在。有f[k][k]!0 #include map
#…题意 给出方向有向然后判断从一个点到另一个点的方案数。如果有无数条那么对应位置置为-1 直接先dp处理出来。dp[i][j] sum(dp[i][k]*dp[k][j]) 同时如果两点之间有无限条路径。那么这两点之间必然有一环存在。有f[k][k]!0 #include map
#include set
#include list
#include cmath
#include ctime
#include deque
#include stack
#include queue
#include cctype
#include cstdio
#include string
#include vector
#include climits
#include cstdlib
#include cstring
#include iostream
#include algorithm
#define LL long long
#define PI 3.1415926535897932626
using namespace std;
int gcd(int a, int b) {return a % b 0 ? b : gcd(b, a % b);}
#define MAXN 35
int dp[MAXN][MAXN];
int N,M;
void read()
{N 0;memset(dp,0,sizeof(dp));while (M--){int u,v;scanf(%d%d,u,v);dp[u][v] 1;N max(N,max(u,v));}
}
int main()
{//freopen(sample.txt,r,stdin);int kase 0;while (scanf(%d,M) ! EOF){read();for (int k 0; k N; k)for (int i 0; i N; i)for (int j 0 ; j N; j)dp[i][j] dp[i][k] * dp[k][j];for (int i 0; i N; i)if (dp[i][i]){for (int j 0; j N; j)for (int k 0; k N; k)if (dp[j][i] dp[i][k]) dp[j][k] -1;}printf(matrix for city %d\n,kase);for (int i 0; i N; i){for (int j 0; j N; j){if (!j) printf(%d,dp[i][j]);else printf( %d,dp[i][j]);}putchar(\n);}}return 0;
} 转载于:https://www.cnblogs.com/Commence/p/4013492.html