http://acm.hdu.edu.cn/showproblem.php?pid=4850
题意:构造长度为n的字符序列,使得>=4的子串只出现一次
其实最长只能构造出来26^4+4-1= 456979 的序列,大于该数的都是不可能的。构造方法,就是那种欧拉回路的序列,此题DFS会爆栈,手动扩展栈也可以AC......
递归形式的开始WA了,没有细调就换非递归了,后来又想了想,虽然自己电脑上运行不了,但是先把长度按小的来,然后调试代码,然后在扩大,AC了,当时错在MOD,递归的MOD应该是26^4,而不是...
分类:
其他好文 时间:
2014-08-31 23:02:42
阅读次数:
332
例如“abc”输出a,b,c,ab,ac,bc,abc#includevoid DFS(char str[],char ss[],int pos,int cnt,int n){ if(n==pos) { ss[cnt]='\0'; if(cnt!=0) pri...
分类:
其他好文 时间:
2014-08-30 19:00:59
阅读次数:
181
方式1:#!/usr/bin/env python#-*- encoding: utf-8 -*-def permutations(iterable, r=None): # permutations('ABCD', 2) --> AB AC AD BA BC BD CA CB CD DA DB DC...
分类:
编程语言 时间:
2014-08-30 09:54:29
阅读次数:
328
题目大意:
给出了N个串。问最多有多少个串组成的序列,是可以由上一个串通过左右两边加字符构成的。
思路分析:
在trie上的dp
在建立自动机的时候,得到fail的同时,用dp记录这个串作为最后一个串所可以得到的最多的满足要求的串的数量。
那么 dp[i] = max(dp[i在trie上的的父亲节点],dp[i的fail节点] )+ 以i节点结尾的单词的数量,注意不是以i字符结...
题目链接:http://poj.org/problem?id=3061先说说最朴素的算法,那就是for嵌套了,复杂度是O(n^3)太慢,想都不用想一定会超时。接下来有的人可能会想到二分搜索的思想,将时间复杂度优化成O(n*logn),我试了一下,可以AC。但是这都不是今天要说的重点,今天要说的是一个...
分类:
其他好文 时间:
2014-08-29 14:21:27
阅读次数:
228
最近给朋友的小孩做了一个毕业设计。用的是asp.netMVC5 +EntityFramework6 +SQLServer 2008.结果做好后,朋友说能不能不要数据库,直接运行?顿时让我很纠结,不需要数据库但又能运行的,只能考虑单文件的数据库了,比如说Access或是SQLite。查阅资料后发现Ac...
分类:
数据库 时间:
2014-08-29 10:48:47
阅读次数:
339