Data Structure
hadis_fukan
这个作者很懒,什么都没留下…
展开
-
hdu 3342 Legal or Not (拓扑排序)
用拓扑排序判断有向图中是否存在环。题目链接:点击打开链接#include#include#include#include#includeusing 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 · 1058 阅读 · 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 · 636 阅读 · 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 · 625 阅读 · 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 · 820 阅读 · 0 评论 -
poj 3630 Phone List (trie~)
题意:判断是否有序列是另一xuelie原创 2014-08-04 13:26:12 · 578 阅读 · 0 评论 -
zoj 1899 Hardwood Species (字典树trie统计)
由于那些树木的名称中含有空格,而kongg所以next数组要原创 2014-08-04 10:26:32 · 690 阅读 · 0 评论 -
zoj 1109 Language of FatMouse (字典树Trie)
最基本的字典树。原创 2014-08-04 09:10:35 · 668 阅读 · 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 · 835 阅读 · 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#includeu原创 2014-03-10 09:30:26 · 1361 阅读 · 0 评论 -
POJ 2796 Feel Good
题目链接:点击打开链接题意:一个数列。n=区间和*此区间最小的数,求n的最大值。就相当于求这样一个长方形的最大值。思路特别有意思:开始想先枚举区间,再在区间中找最小值。复杂度O(n*3),tle换个思考顺序,已当前位置为所在区间的最小值,算以它为最小值向两边能覆盖到的最大范围。记录下来就可以直接算面积了。#include#include#include原创 2014-01-03 17:50:41 · 1735 阅读 · 0 评论 -
poj 1703 Find them, Catch them
还是种类并查集!!题目链接:点击打开链接题目大意:给出不属于同一集合的人的关系。给出询问并判断是不是同一个组织或者当前信息不能判断其关系。#include#includeusing namespace std;int fa[100010];int re[100010];void init(int n){ for(int i=1;i原创 2013-12-04 21:01:01 · 762 阅读 · 0 评论 -
poj 1182 食物链 (种类并查集经典题)
题目链接:点击打开链接题目大意:有n个动物,关于他们的食物链关系有K种说法,要判断这K种说法中假的说法个数。第一次知道并查集怎么解种类关系问题。参考博客:点击打开链接但是奇葩的是这题多组数据就wa,只有单组数据能过!!!值得注意的是,1、find函数必须用递归写,因为路径压缩时更新每个点到新的父亲的关系要从最后面 推到当前节点来原创 2013-12-04 20:24:17 · 854 阅读 · 0 评论 -
hdu 1596 find the safest road
题目链接:点击打开链接用dij算法算最大概率。只要把加法运算改成乘法就可以了。。WA了几次,因为没注意每次vis数组都要清零,而把vis清零的语句放在输入n之后执行。#include#include#include#define INF 0x3f3f3f3fusing namespace std;double edge[1010][1010]原创 2013-12-08 13:05:40 · 1191 阅读 · 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 · 515 阅读 · 0 评论