摘要: http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2896 最小生成树:n个顶点n-1条边 本题因为有50000个点,所以只能用Kuscal 阅读全文
posted @ 2014-06-26 00:00 人艰不拆_zmc 阅读(458) 评论(0) 推荐(0) 编辑
摘要: http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2144&cid=1186 最小生成树,最重要的是了解思想 稠密图用Prim,稀疏图用Kruskal K(每次找最小的边连接,一条边连接两个点,所以单路就可以了) Prim() #include <s 阅读全文
posted @ 2014-06-25 23:46 人艰不拆_zmc 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 我以为像a、aa这样的输入应该是没有输出的,结果还是要输出aa。 建树的时候就是常规建树,不过查找的时候要做一些变形:对于一个单词,从第一位检查有没有单词是它的前缀,如果有的话,再去检查它的后半部分是不是一个独立的单词,要满足这两次查找才能输出。 题意:给一些单词(以字典序输入),找出那些可以分成另 阅读全文
posted @ 2014-06-25 17:11 人艰不拆_zmc 阅读(307) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include using namespace std; typedef struct Node { struct Node *next[10]; int flag; } Node,*Tree; int flag1; void Creat(Tree &T) { T=(Node *)malloc(sizeof(... 阅读全文
posted @ 2014-06-25 00:27 人艰不拆_zmc 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 这题看是否 这题能A是侥幸,解决的办法是先存一下输入的字符串,进行排序。 Problem Description An encoding of a set of symbols is said to be immediately decodable if no code for one symbol 阅读全文
posted @ 2014-06-24 23:52 人艰不拆_zmc 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 这题就是一个字典树的模板题 统计难题 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131070/65535 K (Java/Others) Total Submission(s): 16997 Accepted Submission(s) 阅读全文
posted @ 2014-06-24 19:07 人艰不拆_zmc 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 大意:输入几个字符串,然后再输入几个字符串,看第一次输入的字符串有多少没有在后面的字符串中出现(后输入的字符串不一定出现在之前的字符串中) #include <stdio.h> #include <string.h> #include <stdlib.h> typedef struct Node { 阅读全文
posted @ 2014-06-23 21:13 人艰不拆_zmc 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 一改时间以后WA了,我就知道这题是考字典树,可惜代码怎么也不会敲了,郁闷。 #include <stdio.h>#include <string.h>#include <stdlib.h>typedef struct Node{ int flag; struct Node *next[26]; }N 阅读全文
posted @ 2014-06-23 20:37 人艰不拆_zmc 阅读(215) 评论(0) 推荐(0) 编辑
摘要: 数论公式(x*y) mod z=x*(y mod z)modz. 阅读全文
posted @ 2014-06-20 19:37 人艰不拆_zmc 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 明明很简单,我却错了N++遍,主要原因是在于自己,给自己测试数据时,忘了测大数据,因为只保留小数点后两位,而200以后的数都是0.69.#include #include #include #include using namespace std;int main(){ double a[10... 阅读全文
posted @ 2014-06-19 19:50 人艰不拆_zmc 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 1.打表 打表,是一个信息学专用术语,意指对某种找规律等题目,直接输出答案。这种算法也在对某种题目没有最优解法时,用来得到分数的一种策略。 打表一般分为两步:找到答案与输出答案。 找到答案的方式 一、通过找规律,找出对于每个输入数据n,f[n]的最终结果。 常见题目有费波纳契数列等; 二、通过暴力搜 阅读全文
posted @ 2014-06-19 19:18 人艰不拆_zmc 阅读(205) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>#include <stdio.h>#include <string.h>#include <stdlib.h>using namespace std;char a[1010],b[1010];int ta[1010],tb[1010];int main(){ 阅读全文
posted @ 2014-06-19 18:24 人艰不拆_zmc 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 公式递推代码C(n, m) = C(n -1, m - 1) + C(n - 1, m)计算组合数的公式是:c(m,n)=m!/(n!*(m-n)!)利用杨辉三角来解决组合数可以避免数据超范围!!!第二届山东省省赛D Binomial Coeffcients#include #include #in... 阅读全文
posted @ 2014-06-19 16:52 人艰不拆_zmc 阅读(207) 评论(0) 推荐(0) 编辑
摘要: A(Phone Number) 1.字典树 2.暴力 #include <iostream> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <algorithm> using namespace std; in 阅读全文
posted @ 2014-06-19 16:15 人艰不拆_zmc 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 求最大公约数和最小公倍数假设有两个数a和b,求a,b的最大公约数和最小公倍数实际上是一个问题,得出这两个数的最大公约数就可以算出它们的最小公倍数。最小公倍数的公式是 a*b/mm为最大公约数因为a=m*i; b=m*j;最小公倍数为 m*i*j那么,下面就开始计算a和b的最大公约数。更相损减法:《九... 阅读全文
posted @ 2014-06-19 13:06 人艰不拆_zmc 阅读(1330) 评论(0) 推荐(0) 编辑