摘要: 蓝色牛仔裤? 中规中矩的字符串匹配 唯一的陷阱就是同等长度的子串输出字典序最小的。。。。。 最烂的代码 ……没有之一…… 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std; 10 11 char s[11][62]; 12 13 bool check(char *s1,char *s2,int st,int l) 14 { 15 16 17 18 int ls2 = strlen(... 阅读全文
posted @ 2013-08-10 22:26 好小孩 阅读(169) 评论(0) 推荐(0)
摘要: 题意:有N个球 给出一些轻重关系 排除拓扑序列 若拓扑排序不唯一 则尽量让序号小的轻。输出为该球在拓扑排序中的位置。 解题思路:让入度为零的点进栈,若存在多个入度为零的点,则选取编号最大的。 不会的时候难了一13,会了就感觉水了一13。。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std; 10 11 int head[210],edge[210][40010]; 12 13 struct... 阅读全文
posted @ 2013-08-09 16:12 好小孩 阅读(248) 评论(1) 推荐(0)
摘要: 【基本概念】:二分图:二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。无向图G为二分图的充分必要条件是,G至少有两个顶点,且其所有回路的长度均为偶数。最大匹配:给定一个二分图G,在G的一个子图M中,M的边集中的任意两条边都不依附于同一个顶点,则称M是一个匹配. 选择这样的边数最大的子集称为图的最大匹配问题,如果一个匹配中,图中的每个顶点都和图中某条边相关联,则称此匹配为完全匹配,也称作完备匹. 阅读全文
posted @ 2013-08-09 10:01 好小孩 阅读(208) 评论(0) 推荐(0)
摘要: 题意:一群人在地图上走啊走 每走到一个 ‘S’ 或者 ‘A’ 就可以分开一次 最多分成四个小队(因为只有四个方向可以走),直到找到所有的‘A’,输出能找到所有‘A’的最小的步数。 注意,新的小队的移动次数从0开始计算。 显然,最小生成树算法。每一组相邻的'A'都可以看成是一个整体,这些独立的整体组成了一个图,在这个图上选取一个最小生成树,这颗最小生成树的边的权值之和即为答案。 此题新颖之处在于寻找最短的那条边。一提到最短边显然要用到BFS。 开始的时候以‘s’为BFS的起点出发 找到离它最近的那个‘A’,把这一组‘A’和‘s’看成一个整体,再以这个新的整体为BFS的起点出发,继 阅读全文
posted @ 2013-08-07 09:12 好小孩 阅读(199) 评论(0) 推荐(0)
摘要: 首先要强调一点 这不是一道ACM题,这是他妹的一道英语阅读理解。 题意:输入N 代表有N种汽车。每两种汽车之间有一条边,边的权值的定义为 两串字符串之间有几个不同的字母。。。稠密图。。。。普利姆 或者 克鲁斯卡尔 + 路径压缩 我认为后者能通吃所以很无耻的不会第一种。。。。。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std;10 11 char s[2010][10];12 13 struct E14 {15 ... 阅读全文
posted @ 2013-08-06 16:36 好小孩 阅读(286) 评论(0) 推荐(0)
摘要: 求最长路中的最短路……略显绕嘴 最长路定义为该条路上青蛙调的最远的那一步。应该算是水题,感觉思路比较新颖,主要是权值的定义。 两种算法 很显然 后一种从效率上明显优于前一种 Floyd 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std;10 11 float path[210][210];12 13 float Max(float a,float b)14 {15 return a > b ? a : b;16 ... 阅读全文
posted @ 2013-08-05 21:27 好小孩 阅读(209) 评论(0) 推荐(0)
摘要: SPFA 第二次用到 超级源点 这个概念,依稀记得第一次用还是小时候...... 逆向建图,添加超级源的时候是顺向建立。 0号点为超级源。 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 9 using namespace std; 10 11 struct N 12 { 13 int g,p,v; 14 N *next; 15 }*head[110]; 16 17 N *creat() 18 { 19 ... 阅读全文
posted @ 2013-08-05 14:51 好小孩 阅读(221) 评论(2) 推荐(0)
摘要: #include #include #include #include #include #include using namespace std;char c;int m;int sp[999999];struct Q{ int sta,ans,r,c,pre;} q[999999],t,t1;int top = 0,sum = 999999;bool vis[65536];void search(int site,int sta,int ans){ int s = 0,e = 0; q[e].r = q[e].c = q[e].pre = -1; q[e].sta ... 阅读全文
posted @ 2013-07-29 21:28 好小孩 阅读(222) 评论(1) 推荐(0)
摘要: 暴力枚举 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 using namespace std; 9 10 char c;11 12 int m,t;13 14 int sum = 999999;15 16 void search(int site,int sta,int ans)17 {18 if(sta == 0 || sta == 65535)19 {20 if(ans = 17)32 return;33 34 search(... 阅读全文
posted @ 2013-07-29 20:19 好小孩 阅读(223) 评论(0) 推荐(0)
摘要: 链接 :http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2109 1 #include 2 int a[100000],temp; 3 int main() 4 { 5 int sort(int i,int j,int *a); 6 int i,j,n; 7 scanf("%d",&n); 8 for(i = 0;i a[i]) {mark = 0;temp = a[i];a[i] = a[j];a[j] = temp;} 31 ... 阅读全文
posted @ 2013-06-29 13:13 好小孩 阅读(302) 评论(0) 推荐(0)