关闭

【KMP+暴力】Bazinga hdu5510

好好的KMP,怎么就WA了13次呢?你说。你说清楚。 瞎给字符串排序浪费半小时… 纯暴力KMP先超时若干次… 打了鸡血改用ac自动机超空间若干次… 终于,终于想到 I 较大字符串 对 I 较小的字符串的包含关系。 KMP模板串文本串写反若干次…题意:求编号i最大的字符串,使得存在编号小于I的字符串不是他的字串。 题解:直接暴力O(n^2)次KMP,总共O(n^3)会超时;考虑如果串i包含...
阅读(7) 评论(0)

【hdu5512 规律】Pagodas icpc2015·沈阳

马上要去沈阳打比赛了,非常激动以及紧张,我是个菜鸡的事实要大白于天下了orz。 15年沈阳的签到题。 题意:有n个点,按序编号。一开始标记两个不同的点已经访问,接下来只能访问已访问的点编号之和或者差,问总共访问了奇数个还是偶数个点? 题解:设刚开始标记的结点a , b;则可以访问的点为ax+by,是a , b最大公约数的倍数。 开始一激动去切B了,水题放了很久。 代码不见了那就不放了-啦啦啦...
阅读(6) 评论(0)

【网络流~最大流】uva1660 最小点割

非常非常裸的题目-但还是想了好久 “点上有权值的题目可以考虑拆点解决–刘汝佳” 记住这句话可以说非常有用,一开始还考虑到点边互换上去了。有两个注意点: 1. 不用枚举所有点对,确定一个点之后,对于冥冥中确定但不知道在哪里的最小割点集,另外的点都可以分为这个点一边的和另一边的,枚举一圈就好了。 2. 源点取拆出来的入度点,汇点取拆出来的出度点,因为默认源汇点不需要被删去。这样源汇点无法割开的话...
阅读(11) 评论(0)

【DP】A Spy in the Metro

题目链接:https://cn.vjudge.net/problem/UVA-1025 题意:从1号站到n号站要等待的最短时间(不在车上的时间); 最优子结构:某时刻I在某站台j到n号站的最短时间;dp[时间][站号]; 边界条件:dp数组初始为无穷大(min); dp[t][n] = 0; t时刻在n站台不用等待; 奇技淫巧:定义数组hastran[时间][位置][方向]判断能否进行状态转...
阅读(26) 评论(0)

【ac自动机·DP】poj3691 DNA Repair

这道题做得相当怀疑人生 先按照poj2778建树建图; http://blog.csdn.net/nymph_h/article/details/77141849 接下来不用矩阵快速幂用DP 我对DP从来有莫名的恐惧dp[文本串长度][Trie树节点数]; 母串的前I个前缀在TRIE树中遍历,达到某个安全节点j需要修改的最小值dp[I][j];#define _CRT_SECURE_NO_...
阅读(38) 评论(0)

【AC自动机+矩阵快速幂】poj2778 DNA Sequence

渐渐开始变难orz 先老老实实建树; 然后建ac自动机,注意两个: 1. 若ch[I][j] ==0 ,某个节点没有某一字符的儿子,考虑将其指向其失配节点的儿子:ch[I][j] = ch[f[I]][j];Tire数就变成Tire图了。 若val[f[I]]==1,某节点失配节点是危险节点,则将此节点标为危险节点。 然后构造矩阵mp,如果a,b节点相连且b不是危险节点,mp[a][b]++;...
阅读(31) 评论(0)

【字符串·AC自动机】hdu2222 Keywords Search

很温柔的一道题; 建树的时候,用val数组记录每个节点是几个单词的末尾节点,print函数将末尾是几个节点加上; 比如 input: 1 2 abc abc abc output: 2input: 1 1 abc abcabc output: 1#define _CRT_SECURE_NO_WARNINGS #include #include<cs...
阅读(31) 评论(0)

【字符串·ac自动机】uva1449Dominating Patterns

ac自动机的基本用途是实现多个模板串在一个文本串中的匹配 如:a acd bbca aca 在 aacdacacabbcac中分别出现了几次?在trie树上计算一些新的东西; 失配数组f[maxn]: 如果在文本串I点失配,那还能去哪个节点碰碰运气 后缀链接last[maxn]: 节点j沿着失配链接往回走,遇到的下一个单词节点编号;题目uva4670,找出出现次数最多的字符串,用不同的数表示不...
阅读(24) 评论(0)

【字符串·Trie】uva3942 Remember the words

遇到多校第五场,1002,于是开始学trie树和AC自动机; 模板用的挑程,Trie树用一个二维数组ch[节点数目][字符种类数]实现; ch[I][j]表示第i个节点伸向j字符,如果存在j在i之后存在,则ch[I][j]>0;首先一道模板题uva1401 用d[I]表示 后缀I-L的分解方案数 d[I] = sum{d[I+len(x)]} len(x) 是合法单词且是I-L的前缀; 以上...
阅读(29) 评论(0)

【图论·强连通分量scc】hdu6072Logical Chain

非常有灵性的一道强连通分量。乍一看是道模板题,然而需要用bitset优化时间复杂度至1/64;bitset什么鬼啊喂,很佩服赛场上唯一做出来的大佬orz;常规部分,学习了scc模板求强连通分量; 第一遍dfs给图上的倒序编号(最后访问到的标最小号); 第二遍在所有边反向后的图上dfs,从一个强连通分图上的点不可能访问到其他强分图上的点(为什么还没有理解) cmp[I] = k 表示编号为i的点...
阅读(68) 评论(0)

【图论】hdu6073 Matching In Multiplication

比赛的时候,一眼看到二分图,哇!掏出了dinic模板。之后发现,好像完全不是那么回事。隐隐约约有一点感觉,但就是没有清楚地理清思路。先找出一度节点就没有想到,非联通块更是不知道怎么处理。本期官方题解说的特别清楚,强烈好评~~ 先把一度节点挑出来,得到每个二分图都确定一样的边。 然后剩下一堆度数全部是二的联通快,每个联通快有两种匹配方式,间隔取边,分别得权值积num1,num2;最后 ans =...
阅读(40) 评论(0)

【DP】Codeforces837D. Round Subset

【DP】Codeforces 837 D. Round Subset 鉴于我拙劣的DP技术每一道DP题都十分艰难,现下都先记录下来。[题面](http://codeforces.com/contest/837/problem/D) 题意:从n个数中选取k个,将k个数相乘,乘积末尾的0数目最多有几个;思路: 每个末尾的0一定是由2*5产生的,那么k个数的乘积中有几对2和5的因子,末尾就有几个...
阅读(38) 评论(0)
    个人资料
    • 访问:348次
    • 积分:120
    • 等级:
    • 排名:千里之外
    • 原创:12篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档