2014年7月22日
摘要:
两次bfs;第一次bfs逆向搜索,得到每个点到终点的最短距离,找出最短路;第二次bfs根据最短距离可以选择满足条件的最短路。注意!碰到这种很大数据量的题目一定要记得用scanf,printf 输入输出!!!ps:uva和hdu中数据输入有些出入。。。(uva中没有输入T。。。) 1 #includ...
阅读全文
posted @ 2014-07-22 15:19
gfc
阅读(692)
推荐(0)
摘要:
拓扑排序,以边上标号为点,正方形为边,拓扑图中存在有向环时unbounded,否则bounded;注意:仔细处理输入; 遍历一个点时,下一次遍历拼上的下一个方形边;即假设遍历到 A+ 时,下次从 A- 开始遍历; 1 #include 2 #include 3 #include 4 us...
阅读全文
posted @ 2014-07-22 11:16
gfc
阅读(348)
推荐(1)
2014年7月21日
摘要:
欧拉回路以字母为结点,单词为边;注意两个相同的单词表示两条边。并查集判断是否连通,出度,入度判断是否是欧拉回路 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int map[100010]; 7 int g[30][3...
阅读全文
posted @ 2014-07-21 18:55
gfc
阅读(163)
推荐(0)
摘要:
kmp 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int ans; 7 char n[1000010],m[10010]; 8 int next[10010]; 9 10 void getn...
阅读全文
posted @ 2014-07-21 12:12
gfc
阅读(154)
推荐(0)
摘要:
经典扩展kmp。 1 #include 2 #include 3 #include 4 using namespace std; 5 6 void getA (char *T,int *A){ 7 int j=0; 8 int len=strlen (T); 9 wh...
阅读全文
posted @ 2014-07-21 11:39
gfc
阅读(118)
推荐(0)
2014年7月19日
摘要:
经典kmp 1 #include 2 #include 3 using namespace std; 4 5 int n,m; 6 int a[1000010],b[10010],next[10010]; 7 8 void getnext (int *s,int *next)...
阅读全文
posted @ 2014-07-19 17:10
gfc
阅读(133)
推荐(0)
摘要:
kmpps:poj 2406Power Strings 是这题的简化版 ←_←太水就不贴代码了。。。#include #include #include using namespace std;const int maxn=1000010;char s[maxn];int next[maxn];in...
阅读全文
posted @ 2014-07-19 17:09
gfc
阅读(155)
推荐(0)
摘要:
bfs求最短路,递归打印最短路的具体路径;难点: 当前状态和转弯方式很复杂,要仔细处理; 递归打印:用一个数组存储路径中结点的前一个节点,递归查找 (bfs无法确定下一个结点,但对于没一个结点,它的上一个结点是确定的!)ps:输出因为太懒不想处理所以按书上打的;递归打印理解有点麻烦。。。 1 ...
阅读全文
posted @ 2014-07-19 14:19
gfc
阅读(1012)
推荐(0)
2014年7月18日
摘要:
双向链表注意:如果算法是最后处理翻转情况时,注意指令4翻转后1,2两个指令也要翻转处理; 指令3 中交换盒子要注意两个盒子相邻的情况 1 #include 2 #include 3 using namespace std; 4 5 int ri[100010],le[100010]; 6 ...
阅读全文
posted @ 2014-07-18 16:37
gfc
阅读(285)
推荐(0)
摘要:
建立两个数组同时存储原学校与目标学校。分别按优先原学校和优先目标学校排序,一一配对,验查是否可行。 1 #include 2 #include 3 using namespace std; 4 5 struct node { 6 int x,y; 7 }a[500010],b[5000...
阅读全文
posted @ 2014-07-18 10:38
gfc
阅读(146)
推荐(0)