AC自动机(简单版)
Description给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过。
Input第一行一个n,表示模式串个数;
下面n行每行一个模式串;
下面一行一个文本串。
Output一个数表示答案
Sample Input12342aaaaa
Sample Output12
Hint
#
Data Range
SubTask1(50)
$\sum len(模式串,文本串)\leq10^6\;n=1$
SubTask2(50)
$\sum len(模式串,文本串)\leq10^6$
分析看题目名字就知道这是一道AC自动机裸题
回顾一下AC自动机的算法流程:
所有模式串建立Trie树:$Tinsert$
建立 lose 数组(fail指针):$Tinit$
匹配:$Tmatch$
在匹配过程中,由于要防止后缀重复出现的问题,每走过一个节点,将他的 $isend$ 值设置为 $false$ ,为了防止前缀相同而漏掉,需要每次 $k=lose[k]$ 继续匹配{:.info}
Code123456789101112131415161718192021222 ...
Hash | 查询
Description 给定一个长度为n的整数数组A[1]、A[2]、…、AN,和m个操作:
操作1:1 i x 把A[i]的值增加 x (-10^3<=x<=10^3);
操作2:2 x 查询整数 x 在A[1]..A[N]中出现的次数
Input第一行包含两个整数n和m,表示数组有n个元素,m表示有m个查询操作; 接下来的一行包含n个整数,第i个整数表示A[i]; 再接下来的m行,每行表示一个操作.
Output按输入顺序输出操作2的结果。
Sample Input12345678910111210 93 5 8 17 14 21 7 6 31 52 91 2 -11 1 12 41 5 22 51 8 -11 2 12 5
Sample Output12340213
分析用 $Hash$ 来压缩标记数组的空间大小,选取 $Hash$ 的取余数为:$1226959$(网上搜的){:.success}
对于每个数 $x$,$x\mod 1226959$ 的值不容易出现重复,因此标记数组开到 $1226959$ 就行了
如果出现重复元素,用 $Vetcor ...
分治 | [USACO06JAN]把牛Corral the Cows
DesciptionFarmer John wishes to build a corral for his cows. Being finicky beasts, they demand that the corral be square and that the corral contain at least C (1 <= C <= 500) clover fields for afternoon treats. The corral’s edges must be parallel to the X,Y axes.
FJ’s land contains a total of N (C <= N <= 500) clover fields, each a block of size 1 x 1 and located at with its lower left corner at integer X and Y coordinates each in the range 1..10,000. Sometimes more than one clover ...
分治 | [USACO06JAN]把牛Corral the Cows
DesciptionFarmer John wishes to build a corral for his cows. Being finicky beasts, they demand that the corral be square and that the corral contain at least C (1 <= C <= 500) clover fields for afternoon treats. The corral’s edges must be parallel to the X,Y axes.
FJ’s land contains a total of N (C <= N <= 500) clover fields, each a block of size 1 x 1 and located at with its lower left corner at integer X and Y coordinates each in the range 1..10,000. Sometimes more than one clover ...
分治 | Best Cow Fences
DescriptionFarmer John’s farm consists of a long row of N (1 <= N <= 100,000)fields. Each field contains a certain number of cows, 1 <= ncows <= 2000.
FJ wants to build a fence around a contiguous group of these fields in order to maximize the average number of cows per field within that block. The block must contain at least F(1 <= F <= N) fields, where F given as input.
Calculate the fence placement that maximizes the average, given the constraint.
Input
Line 1: Two space-s ...
分治 | 二分 | 防线
Descriptionlsp学习数学竞赛的时候受尽了同仁们的鄙视,终于有一天……受尽屈辱的lsp 黑化成为了黑暗英雄 Lord lsp。就如二漫画的情节一样, Lord lsp 打算毁掉这个世界。数学竞赛界的精英 lqr 打算阻止 Lord lsp 的阴谋,于是她集合了一支由数学
竞赛选手组成的超级行动队。由于队员们个个都智商超群,很快,行动队便来到了 Lord lsp 的黑暗城堡的下方。
但是,同样强大的 Lord lsp 在城堡周围布置了一条“不可越过”的坚固防线。防线由很多防具组成,这些防具分成了 N 组。我们可以认为防线是一维的,那么每一组防具都分布在防线的某一段上,并且同一组防具是等距离排列的。也就是说,我们可以用三个整数 S, E 和 D 来描述一组防具,即这一组防具布置在防线的 S,S + D,S + 2D,…,S + KD(K∈Z,S + KD≤E,S + (K + 1)D>E)位置上。
黑化的 Lord lsp 设计的防线极其精良。如果防线的某个位置有偶数个防具,那么这个位置就是毫无破绽的(包括这个位置一个防具也没有的情况,因为 0 也是偶数)。只有有奇数个防具的位 ...
VB.NET小程序
分享一个最近写的歌词编辑小程序:$LrcEditor$
下载地址(腾讯微云)
目前可以实现的功能:
对歌词进行编辑,按时间顺序排序并展示
按照LRC文件的格式输出歌词文件
$BUG$ 和 待完善的功能:
添加歌曲同步录制功能
异常卡死(有时)
程序信息:
exe文件路径:\lrceditor\lrceditor\bin\Debug
解决方案(在VS2017下编辑):\lrceditor\lrceditor.sln
欢迎发表评论(指点 $or$ 讨论都可以)!
动态规划 | 数位 | Round Numbers
DescriptionThe cows, as you know, have no fingers or thumbs and thus are unable to play Scissors, Paper, Stone’ (also known as ‘Rock, Paper, Scissors’, ‘Ro, Sham, Bo’,and a host of other names) in order to make arbitrary decisions such as who gets to be milked first. They can’t even flip a coin because it’s so hard to tossusing hooves.
Theyhave thus resorted to “round number” matching. The first cow picks aninteger less than two billion. The second cow does the same. If the numbers arebo ...
动态规划 | 数论 | Scoi2009 Windy数
Description windy定义了一种windy数。相邻两个数字之差至少为2的正整数被称为windy数。windy想知道,在A和B之间,包括A和B,总共有多少个windy数?
Input包含两个整数,A B。
Output包含一个整数。
Sample Input11 10
Sample Output19
Hint20%的数据,满足 1 <= A <= B <= 1000000 。100%的数据,满足 1 <= A <= B <= 2000000000 。
分析Success Text.{:.success}
Codes1234567891011121314151617181920212223242526272829303132333435363738#include <bits/stdc++.h>#define maxn 66using namespace std;typedef long long LL;int spr[maxn];LL f[maxn][maxn];LL dfs(int x,int p,bool lim) ...