02 2013 档案
摘要:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=1493&cid=1149题意:中文......思路:首先对于基本勾股数来说,有这样一个特点即gcd(a,b,c) = 1; 而对于所有勾股数有gcd(a,b) = gcd(b,c) = gcd(a,c);存在一个构造基本勾股数的方法:条件 :(m > n > 0) ,gcd(m,n) = 1 , m 与 n 的奇偶性不同 => a = m*m - n*n ; b = 2*n*m; c = m*m + n*n; a.b,c不确定到底谁最大。根据题意我们知道,a + b
阅读全文
摘要:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=1482题意:中文......思路:模拟。。。就是模拟多项式的加法和乘法,不过要注意两点:1:排序,首先按x幂大的派,如果x相等,按y幂大的往下排,注意的是当x的幂不为0,y的为0时,要将他的y职位inf,再排序;2:注意当出现相乘结果出现0时,要输出0 ;(就是因为这里纠结了好一阵子);//#pragma comment(linker,"/STACK:327680000,327680000")#include <ios
阅读全文
摘要://#pragma comment(linker,"/STACK:327680000,327680000")#include <iostream>#include <cstdio>#include <cmath>#include <vector>#include <cstring>#include <algorithm>#include <string>#include <set>#include <functional>#include <numeric>
阅读全文
摘要:http://poj.org/problem?id=2778题意:给定n个病毒DNA串,求一个长度为m的DNA片段不包含任何一个病毒串的的可能数?思路:首先根据n个DNA串构造AC自动机,然后根据AC自动机构造矩阵,然后转化到Matrix大神的是个利用举证解决的问题的例八中去。才开始我一直以为推出的举证和斐波那契数列的意思一样,转了个死弯,这里是把AC自动机这个图转化为邻接矩阵,然后求从一个状态到另一个状态经过m条边的的可能数。这个通过AC自动机得到的矩阵其实就是一个关系矩阵。这里借鉴了一下胡浩大神的AC自动机模板://#pragma comment(linker,"/STACK:3
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2604题意:L个人排队,这一队里男性用m表示,女性用f表示,问长度为L的序列里面不包含形如"fmf"和"fff"的可能的排队的数量:AC大牛的图:然后AC大牛给出了递推式:S0表示其他状态S1表示状态的后缀是(f),为了不和S2重复,姑且当成是(mf),其他状态同.其他的图上应该很明确了.现在就是状态转移显然在有后缀为fmf or fff以后后面无论加什么那么状态都不会变化了,于是假设dp[i][j]表示长为i,后缀状态为j的方案数dp[n][5]=2*dp[n-1][
阅读全文
摘要:转载自:http://www.matrix67.com/blog/archives/276 好像目前还没有这方面题目的总结。这几天连续看到四个问这类题目的人,今天在这里简单写一下。这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质。不要以为数学中的矩阵也是黑色屏幕上不断变化的绿色字符。在数学中,一个矩阵说穿了就是一个二维数组。一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和。比如,下面的算式表示一个2行2列的矩阵乘以2行3列的矩阵,其结果是一个2
阅读全文
摘要:http://poj.org/problem?id=3691题意:给出n个DNA病毒串,然后给出一个需要修改的DNA片段,问需要最少修改多少个字符才能是该DNA片段不含DNA病毒串,修改后的DNA片段长度不变思路:这题看了一天了,DP那地方好难懂。首先这里是多串匹配,我们用Trie树和fail的构造确定性有限状态自动机(DFA),然后再DFA上进行DP;这里我DP理解了很长时间,dp[i][j]表示主串匹配到了第i个位置,然后到达的是AC自动机上的j状态时修改字符的个数,我们保证j状态不是模式串(DNA病毒串)的结束节点,然后不断地往后走选出一条匹配完主串,并且修改字符串数最少的的一条。dp[
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2896题意:中文......思路:这里就知识循环枚举每一个网址即可,set记录每个网址包含的病毒的编号。//#pragma comment(linker,"/STACK:327680000,327680000")#include <iostream>#include <cstdio>#include <cmath>#include <vector>#include <cstring>#include <algorithm&g
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=2222题意:给出n个单词,再给出一段包含m个字符的文章,求有多少个单词在文章里出现过。思路:才开开始以为简单的Trie数就可以,结果TLE到无语,字典树枚举每一个查找单词的第一个字母的话是O(N*50)前边还有一个T计算的话会超时,看了一下解题报告原来是AC自动机的基础应用。给出一个不错的链接http://blog.himdd.com/?p=2169这里讲的很详细。想不到,回校第一个题目竟然是4个2的题号,无语。。。。//#pragma comment(linker,"/STACK:32768000
阅读全文