摘要:
#include<iostream> using namespace std;
int n,m;
const int N=22;
char mat[N][N];
int sx,sy;
int dx[4]={-1,0,0,1};
int dy[4]={0,1,-1,0};
int ans;
bool visit[N][N];
void dfs(int x,int y)
{ for(int i=0;i<4;i++) { int xx=x+dx[i]; int yy=y+dy[i]; if(xx>=1&&xx<=m&&yy<=n&a 阅读全文
posted @ 2011-08-31 22:56
不是我干的
阅读(119)
评论(0)
推荐(0)
摘要:
其实这题还是不难。精彩的地方在于用位处理来记录公司。这样再用floyd传递闭包时候只需要位运算。很妙。#include<iostream>#include<string>using namespace std;int n;const int N=205;int mat[N][N];void floyd(){for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)if(mat[i][k]&mat[k][j]){mat[i][j]|=(mat[i][k]&mat[k][j 阅读全文
posted @ 2011-08-31 19:53
不是我干的
阅读(160)
评论(0)
推荐(0)
浙公网安备 33010602011771号