![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Data Structure
hadis_fukan
这个作者很懒,什么都没留下…
展开
-
hdu 3342 Legal or Not (拓扑排序)
用拓扑排序判断有向图中是否存在环。 题目链接:点击打开链接 #include #include #include #include #include using namespace std; vector edge[510]; int deg[510]; stack dz; int n; void solve() { int count=0; for(int原创 2013-12-07 22:25:57 · 1052 阅读 · 0 评论 -
POJ 3080 Blue Jeans (KMP || 暴力)
题意:找n个串的长度>=3的公共子串 分析: 以第一个串为模板,枚举它的所有子串检查它是否为其他n-1个串 的子串,如果是则筛选长度最大且字典序最小的。 strncpy(s1,s,n) 函数作用是 将s指针所指位置开头的n个字符复制到s1字符串中。 strstr(s1,s2)判断s2是否为s1的子串,如果不是返回NULL,否则先确定s2在s1 的第一次出现的位置,并返回此str1在s原创 2015-02-11 10:22:11 · 624 阅读 · 0 评论 -
POJ 2406 Power Strings (KMP找字符串的循环节)
题意:找字符串的循环节,求字符串包含多少个循环节。 分析: 用KMP求next数组时, 把j改成比它小的值j'。j'可能是多少呢?仔细想一下,我们发现,j'必须要使得B[1..j]中的头j'个字母和末j'个字母完全相等(这样j变成了j'后才能继续保持i和j的性质)。这个j'当然要越大越好。 #include #include #include #include #include原创 2015-02-10 15:11:09 · 613 阅读 · 0 评论 -
hdu 4923 Room and Moor (单调栈+思维)
题意: 给一个0和1组成的序列a,要构造一个同样长度的序列b。b要满足非严格单调,且 值为0到1的实数。最后使得 sum((ai-bi)^2)最小。 算法: 首先a序列开始的连续0和末尾的连续1是可以不考虑的。因为只要b序列对应开头为0、 末尾为1,既不影响单调性又能使对应的(ai-bi)^2=0。 然后, 先找111100、11100、10这样以1开始以0结束的序列块。每原创 2014-08-10 09:00:09 · 811 阅读 · 0 评论 -
poj 3630 Phone List (trie~)
题意:判断是否有序列是另一xuelie原创 2014-08-04 13:26:12 · 571 阅读 · 0 评论 -
zoj 1899 Hardwood Species (字典树trie统计)
由于那些树木的名称中含有空格,而kongg所以next数组要原创 2014-08-04 10:26:32 · 683 阅读 · 0 评论 -
zoj 1109 Language of FatMouse (字典树Trie)
最基本的字典树。原创 2014-08-04 09:10:35 · 660 阅读 · 0 评论 -
hdu 1325 Is It A Tree?
题意:判断是否为树。 思路: 确实是道简单题。我也知道,只是有时候就是没耐性。 现在想通了,I can make it,never say never. 一味否定自己真是不应该! 嗯,主要就是判断三个方面嘛: 1、判断点的个数是否是边的条数加1. 2、判断是否有点的入度为2。我采用的是用vis数组标记判断。 3、判断是否有一个点即根节点的度数为0。(这个是我比赛的时原创 2014-03-25 22:08:29 · 821 阅读 · 1 评论 -
hdu 1381 Crazy Search (map+string||hash)
题意:求字符串中长度为n的不同子串数目。 string的一个构造函数用法以前没用过 string t(str,i,n);表示string类的t是从str中的第i个元素开始,一共接受n个字符 #include #include #include #include #include #include #include #include #include #include u原创 2014-03-10 09:30:26 · 1349 阅读 · 0 评论 -
POJ 2796 Feel Good
题目链接:点击打开链接 题意:一个数列。n=区间和*此区间最小的数,求n的最大值。就相当于求这样一个长方形的最大值。 思路特别有意思: 开始想先枚举区间,再在区间中找最小值。复杂度O(n*3),tle 换个思考顺序,已当前位置为所在区间的最小值,算以它为最小值向两边能覆盖到的最大范围。记录下来 就可以直接算面积了。 #include #include #include原创 2014-01-03 17:50:41 · 1704 阅读 · 0 评论 -
poj 1703 Find them, Catch them
还是种类并查集!! 题目链接: 点击打开链接 题目大意: 给出不属于同一集合的人的关系。给出询问并判断是不是同一个组织或者当前信息不能判断 其关系。 #include #include using namespace std; int fa[100010]; int re[100010]; void init(int n) { for(int i=1;i原创 2013-12-04 21:01:01 · 752 阅读 · 0 评论 -
poj 1182 食物链 (种类并查集经典题)
题目链接:点击打开链接 题目大意: 有n个动物,关于他们的食物链关系有K种说法,要判断这K种说法中假的 说法个数。 第一次知道并查集怎么解种类关系问题。 参考博客:点击打开链接 但是奇葩的是这题多组数据就wa,只有单组数据能过!!! 值得注意的是, 1、find函数必须用递归写,因为路径压缩时更新每个点到新的父亲的关系要从最后面 推到当前节点来原创 2013-12-04 20:24:17 · 845 阅读 · 0 评论 -
hdu 1596 find the safest road
题目链接:点击打开链接 用dij算法算最大概率。 只要把加法运算改成乘法就可以了。。 WA了几次,因为没注意每次vis数组都要清零,而把vis清零的语句 放在输入n之后执行。 #include #include #include #define INF 0x3f3f3f3f using namespace std; double edge[1010][1010]原创 2013-12-08 13:05:40 · 1178 阅读 · 0 评论 -
POJ 3461 Oulipo (KMP模板题)
求模式串在给定文本串中出现的次数。 #include #include #include #include #include #include #include #include #include #include #define eps (1e-8) using namespace std; typedef long long ll; const int maxn = 100001原创 2015-02-10 15:39:41 · 506 阅读 · 0 评论