HDU5961传递

分析

啥是竞赛图啊
竞赛图对这个题好像没有很大的影响,考虑什么样的能够传递,其实说白了就是对于一个顶点\(u\),如果他的一条出边的顶点\(v\)能够到达\(x\),那么\(u\)也能到达\(x\),然后因为只涉及到能不能到达,所以用bitset完美解决。
时间复杂度应该\(O(Tn^2)\),最多有八组极限数据,2016的平方是32514048,一秒的话肯定不够,六秒就可以了。

#include
#include
#include
#include
using namespace std;
const int N=2020;
struct Edge{
	int to,nxt;
}e[N*N];
bitset dis[N];
int idx,h[N],n;
void Ins(int a,int b){
	dis[a][b]=1;
	e[++idx].to=b;
	e[idx].nxt=h[a];
	h[a]=idx;
}
char s[N][N];
bool judge(char ch){
	memset(h,0,sizeof(h));
	idx=0;
	for(int i=0;i

你可能感兴趣的:(HDU5961传递)