上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 61 下一页
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26898思路:我们可以给定有直接边相连的两点的距离为1,那么就是求源点出发能够走偶数步的所有的点的个数。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define MAXN 111 9 10 int n,m;11 vector >g;12 bool even[MAXN],odd[MAXN];13 14 void bfs( 阅读全文
posted @ 2013-10-01 10:11 ihge2k 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26879思路:题目意思很简单,就是通过一些位置的交换,最后变成有序数列,对于一组序列,我们可以用康托展开然后hash判重。然后就是普通的bfs,稍微留意一下细节即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 int is_prime[]={0,0,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,1}; 8 int fa... 阅读全文
posted @ 2013-09-29 10:45 ihge2k 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26772思路:注意判重就行,开个6维数组记录3个robots的位置,然后要注意的就是不能多个robots同时在一个格子上,一开始没注意到这点! 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 11 8 9 struct Point{10 int x,y;11 };12 13 struct Node{14 Poi... 阅读全文
posted @ 2013-09-27 17:19 ihge2k 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26766思路:由于数据不是很大,我们可以枚举骑士最后聚集的位置,然后枚举的时候用bfs搜索即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define MAXN 14 9 10 struct Node{11 int x,y,step;12 Node(){}13 Node(int _x,int _y,... 阅读全文
posted @ 2013-09-27 15:07 ihge2k 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25835思路:对每一个连通块将其染色,然后取颜色相同的最多的点,最后全部加起来即可。PS:一开始没考虑到有可能有些点不出现,WA了好多次,然后改成将出现的点标记即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 #define MAXN 222222 8 9 struct Edge{10 int v,next;11 }edge[MAXN >.. 阅读全文
posted @ 2013-09-26 20:29 ihge2k 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=25957思路:由于路线为一个环,将路径上的权值改为c-p*d,那么然后建图,那么我们只需判断图中是否存在权值和为正的环,这个用spfa即可。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define MAXN 222 9 #define inf 1 >g;22 23 void spfa(int st)24 {25 me. 阅读全文
posted @ 2013-09-26 19:09 ihge2k 阅读(296) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26823思路:题目的意思是求出所有的能够到达负环的点。负环很好求,spfa即可,然后要求那些可以到达负环的点,其实我们可以反过来想,从负环出发,看能够达到那些顶点。于是我们可以建反图搞定。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define MAXN 1111 9 #define inf 1 >g;22 23 vo 阅读全文
posted @ 2013-09-26 18:30 ihge2k 阅读(585) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27016题意:求一个连通图去掉任意一个点以及与它相连的边,图中的所有蚂蚁可以通过某些点中建造的矿井逃到地面,求最少要在图中的几个点中建造矿建,这样建造矿井的方案的总数。思路:首先求点双连通分量,标记割点,然后我们可以分析,若一个连通分量中有且仅有一个割点,那么除了这个割点之外,别的点都能造矿井,且只需在除了这个割点之外的某个点上造一座矿井就可以了(假设破话的是这个割点,那么这个连通分量中的蚂蚁可以通过有矿井的点逃到表面,但是如果矿井恰好造在割点上,那么一旦去掉了割 阅读全文
posted @ 2013-09-25 21:47 ihge2k 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=27010思路:首先Tarjan标记桥,然后对于dfs遍历整个图,我们可以得出一个简单的结论,就是如果一个双连通分量中存在奇圈,那么这个双连通分量中的所有点都可行,于是我们可以dfs染色判奇圈。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MAXN 22222 7 8 struct Edge{ 9 int v,next;10 }edge[MAXNd... 阅读全文
posted @ 2013-09-25 11:05 ihge2k 阅读(304) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26780思路:判断一个点是否是割点的两个条件:1、如果一个点v是根结点并且它的子女个数大于等于2,则v是割点。2、如果点v不是根结点,并且存在她的一个子女u,使得low[u]>=dfn[v],则v是割点。然后我发现以前求割点的写法有点问题,=.=//。幸好不是在比赛中遇到!贡献上最新模板。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MAXN 444 阅读全文
posted @ 2013-09-24 21:20 ihge2k 阅读(221) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 61 下一页