- 博客(10)
- 收藏
- 关注
原创 CodeForces 358E - Dima and Kicks
dfs判断欧拉图,红名选手的代码就是炫酷。首先统计所有点的度数总和,而后对于这张图的特殊性——每个点最多只会有四条边,来标记当前边是否走过了。若在一次DFS中,能遍历所有的节点则输出所有边长的gcd的大于1的约数集。真心学习了。#include #include #include #include #include #include #include #include
2014-08-23 20:48:44 1096
原创 POJ 3691 DNA repair 基于AC自动机的DP
dp[i][j] 表示长度为 i 的前缀到达第 j 个节点的最小更改数目。很显然有dp[0][0] = 0;dp[ i ][ j ] = min(dp[ i ][ j ],dp[i-1][k] + (j == k ? 0 : 1)),当且仅当j,k满足下列条件时。j 不为某条模式串的末节点 且 j 到 root 的由失败指针组成的路径上无末节点。j 是k的儿子节点 或者 j 的父节
2014-08-17 19:22:06 921
原创 POJ 2778 DNA Sequence AC自动机 + 矩阵快速幂
首先建立Trie和失败指针,然后你会发现对于每个节点 i 匹配AGCT时只有以下几种情况:i 节点有关于当前字符的儿子节点 j 且安全,则i 到 j找到一条长度为 1的路。i 节点有关于当前字符的儿子节点 j 且 不安全,则i 到 j没有路。i 节点没有关于当前字符的儿子节点但是能通过失败指针找到一个安全的节点j,那么 i 到 j 找到一条长度为1的路。关于节点安全的定义:
2014-08-17 15:03:54 749
原创 HDU 2222 Keyword Search AC自动机模板
#include #include #include #include #include #include #include #include #include #include #include #pragma comment(linker, "/STACK:1024000000");#define EPS (1e-6)#define LL long long#de
2014-08-16 19:37:59 846
原创 初涉AC自动机 新姿势get√
可以理解为Trie上的KMP。建议打好Trie和KMP的基础再来搞。从复习KMP开始算一共搞了四天才写出第一份模板. . . . . .推荐一篇博客:http://www.cppblog.com/menjitianya/archive/2014/07/10/207604.html(好像是把HDU带进Final的队长写的)HDU 2222 Keyword Search(入门神题)询问
2014-08-16 19:34:07 629
原创 POJ 1166 The Clocks 高斯消元 + exgcd(纯属瞎搞)
根据题意可构造出方程组,方程组的每个方程格式均为:C1*x1 + C2*x2 + ...... + C9*x9 = sum + 4*ki;高斯消元构造上三角矩阵,以最后一个一行为例:C*x9 = sum + 4*k,exgcd求出符合范围的x9,其他方程在代入已知的变量后格式亦如此。第一发Gauss,蛮激动的。#include #include #include #inclu
2014-08-09 12:00:57 931
原创 HDU 1677 Nested Dolls
过了之后感觉以前真的做过这种类型的题。之前一直很疑惑二级排序的优先级问题,现在发现二级排序真的没有绝对的优先级。对于此题,若按W排序,则有1到i件物品的W均小于等于第i+1件物品(设为A)的W,那么对于第i+1件我们在[1,i]中要选取一个B,使得B.w 这就是所谓的最接近A的B。因为对于W,后面的均大于等于前面的,所以我们需要一个尽可能大的H。Splay_Tree实现。#
2014-08-04 18:34:40 877
原创 HDU 3234 Exclusive-OR Regional的题就是硬啊卧槽
带权并查集,思路很清晰,代码很难看。对于 I u v ,分以下几种情况不合法。1.num[u] 已确定 && num[u] != v 。2.num[u] 的根已确定,若num[u] == v与根节点有冲突。若合法,则修改num[u] 且 修改num[u]的根节点的信息。对于 I u v w ,分以下几种情况不合法。1.num[u] ,num[v] 均已确定
2014-08-03 13:57:23 1065
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人