摘要: /*题目: 求图中的任意两顶点是否两两互达分析: tanjan算法求得缩点的个数,判断是否为一即可*/#include <iostream>#include <cstdio>#include <vector>#include <cstring>using namespace std;const int V = 100005;vector<int> adj[V];int dfn[V],stack[V],low[V],bcnt,depth,top;bool instack[V];int n,m;//int father[V];void t 阅读全文
posted @ 2012-05-28 22:37 yejinru 阅读(287) 评论(0) 推荐(0) 编辑
摘要: /*题目: 马能否从(1,1)开始走完所有的格点,并且所走的格点之前都没有走过分析: dfs+回溯,分8个方向走,用Next[i,j]记录位置(i,j)的下一位的所在位置*/#include <iostream>#include <cstdio>#include <cstring>using namespace std;const int X = 30;int n,m;int Next[X][X];bool use[X][X];int dir[8][2] = {{-2,-1},{-2,1},{-1,-2},{-1,2},{1,-2},{1,2},{2,-1} 阅读全文
posted @ 2012-05-28 18:38 yejinru 阅读(153) 评论(0) 推荐(0) 编辑
摘要: /*题目: 听说lcy帮大家预定了新马泰7日游,Wiskey真是高兴的夜不能寐啊,他想着得快点 把这消息告诉大家,虽然他手上有所有人的联系方式,但是一个一个联系过去实在 太耗时间和电话费了。他知道其他人也有一些别人的联系方式,这样他可以通知其 他人,再让其他人帮忙通知一下别人。你能帮Wiskey计算出至少要通知多少人,至 少得花多少电话费就能让所有人都被通知到吗?分析: 因为可以通过其他人来通知他们认识的人,所以这幅图可以用强连通分量变成一个 缩点的图,所有相互强连通分支变成一个缩点,求的所有缩点中入度为0的缩点即为 所求的需要通知的最小人数。然... 阅读全文
posted @ 2012-05-28 09:58 yejinru 阅读(202) 评论(0) 推荐(0) 编辑