- 博客(175)
- 收藏
- 关注
原创 AC自动机详解
概述介绍Aho-Corasickautomation,该算法在1975年产生于贝尔实验室,是著名的多模匹配算法。要学会AC自动机,我们必须知道字典树,也就是Trie树,又称单词查找树或键树,是一种树形结构,是哈希树的变种。AC自动机一个常见的例子就是给出n个单词,再给出一段包含m个字符的文章,让你找出有多少个单词在文章里出现过。要搞懂AC自动机,先得有字典树Trie和KMP模式匹配算法的基础知识。K
2017-08-21 19:48:56 2161
原创 字典树详解
字典树字典树又称为单词查找树,Trie树,是一种树形结构,是哈希树的一种变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。如图所示: 性质1、根节点不包含字符,除根节点外的每个节点都只包含一个字符;2、从根节点到某一节点,路径上经过的字符连
2017-08-04 09:30:06 2707
原创 Python学习——函数
调用函数Python内置了很多有用的函数,我们可以直接调用。要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。调用abs函数:>>>abs(100)100>>>abs(-50)50调用函数的时候,如果传入的参数数量不对,会报TypeError的错误,并且Python会明确地告诉你:abs()有且仅有1个参数,但给出了两个:Traceback (most recent call last): File "<std
2021-10-08 18:02:58 128
原创 Python基础——条件判断和循环
条件判断计算机之所以能做很多自动化的任务,因为它可以自己做条件判断。比如,输入用户年龄,根据年龄打印不同的内容,在python程序中,用`if``语句实现:
2021-09-29 18:01:40 240
原创 Python基础——字符串和使用list和tuple
字符串和编码Python的字符串Python的字符串支持多语言。对于单个字符的编码,Python提供了ord()函数获取字符的整数表示,chr()函数把编码转换为对应的字符:>>> ord('A')65>>> chr(66)'B'...
2021-09-28 16:04:50 333
原创 第43期ACM_ICPC亚洲区域赛(焦作站)感想
2018年11月25日在焦作河南理工大学举办了第43期ACM_ICPC亚洲区域赛,本次比赛我很荣幸的代表了学校参加了比赛,但是很可惜只是去打了个铁(嘤嘤嘤~~)。不过虽然没有拿到牌,但是这也是一场不错的经历,从这次的比赛中也得到了很多的东西。 通过这一次的焦作站,我也深刻了看到了与别人的差距,以及我们学校和别的学校的差距。作为河南省一个二本院校,我们...
2018-11-26 19:24:54 972 1
原创 第一次参加数学建模有感
2018年9月13日晚上八点全国大学生数学建模比赛开始了。2018年9月13日是周四,这一年的这一天真的是一个与众不同的一天啊!与我而言,这是我第一次参加数学建模比赛。在我以前的认知中,我一直觉得数学建模只是数学系的一个比赛,对于我们这些学习计算机的人来说就是八竿子打不着的一个东西。但是真正的体会了一下之后才发现这是一个综合性的比赛。虽然里边的数学模型我还是不会建但是写一篇论文东拼西凑还是OK的啦...
2018-09-19 12:28:11 2056
原创 HDU 1251 统计难题【字典树】
题目链接题目意思统计以某个字符串为前缀的单词数解题思路最先看到这道题的时候想的就是字典树。但是这一次用字典树写一直内存超限。。。。 本来就特别讨厌字典树的题。唉。。。。烦死了。 不过后来发现用静态的数组就是过不了。后来发现有人写的博客用的是动态的,我就又改了改。 说起来也算有了解了一下动态的用法。 还有一个比较坑的就是这道题的输入。读到回车结束,换行再输入前...
2018-09-10 20:02:56 222
原创 HDU 6325 Interstellar Travel【凸包】
题目链接Problem Description After trying hard for many years, Little Q has finally received an astronaut license. To celebrate the fact, he intends to buy himself a spaceship and make an interst...
2018-08-03 19:53:49 257
原创 HDU 6335 Nothing is Impossible
题目链接题目意思有m个人参加比赛,现在有n道题,每道题有ai个正确答案,bi个错误答案,现在每道题每个人选择一个选项,选对得一分,分数高获胜。现在问你赢家的最小分数是多少解题思路其实我也不知道啥解题思路,比赛时体面更改了两次,开始时不太理解,后来改过体面就懵懵懂懂,也不知道就A了。。。。 其实它给出每道题的正确选项个数个错误选项个数,就相当给了你选择正确答案的概率。先对b...
2018-08-03 19:32:28 246
原创 HDU 6324 Grab The Tree【异或】
题目链接题目意思小Q和小T要玩一个游戏,现在有一颗节点数为N的树,每个节点有一个权值。现在小Q可以选择任意不相邻的节点,小Q选完以后剩余的所有节点都归小T。现在小Q和小T的分数就是所选的所有节点的权异或和,谁的分数高谁就赢了,如果分数相同就是平局。谁赢输出谁,平局输出D。解题思路根据异或的性质Q异或T会等于全部异或和。所以Q只要取异或总和最高为为1的那部分。剩下肯定比他小。但如果全...
2018-07-31 11:15:34 317
原创 HDU 6319 Ascending Rating【单调队列】
题目链接题目意思有一个长度为n的序列,现在给出你序列的前k个数和一个递推公式,让你计算序列的所有值。然后现在划分一个长度为m的连续区间,问你所画的所有区间中最大值异或i的和值,和区间中最大值变化次数异或i的和值。解题思路大白话这题的关键就在于求一个序列的最大值和最大值变化的次数,我们就会想到用单调队列,用单调队列维护,我们将数列倒过来去维护一个递减的单调队列,这样队头元素就...
2018-07-31 10:56:19 174
原创 HDU 6305 RMQ Similar Sequence【笛卡尔树】
题目链接题目意思定义RMQ(A,l,r)为:序列A中,满足A[i] = max(A[l],A[l+1],…,A[r])的最大的i。如果对于任意(l,r)都满足RMQ(A,l,r)=RMQ(B,l,r)则为A和B是RMQ Similar。现在出A序列,B串中每个元素服从于[0,1]上相互独立的均匀分布。问满足与A是RMQ Similar的所有B序列中所有数之和的期望。例如1,3,2和...
2018-07-30 10:06:43 244
原创 HDU 6315 Naive Operations【线段树】
题目链接题目意思初始a数组为0,给你一个b数组,q次询问add x y为a数组区间x y增加1,query x y查询区间x~y中a[i]/b[i]向下取正的和值。解题思路区间查询问题,我们首先想到的就是线段树。 我们用sum数组去维护区间的和值,由于分母是固定的,那么就维护一个数组sub[root]=min(b[i]-a[i]%b[i])的值。这样如果sub[root]...
2018-07-28 15:39:22 137
原创 HDU 6318 Swaps and Inversions【归并排序】
题目链接题目意思现在有一个n个数值的无序序列,现在要求这个序列中的逆序对个数,并且每个逆序对需要支付x元。但是那你可以耍一个小把戏就是支付y元将这个序列中相邻的两个数值交换。现在问你你需要的最小支付是多少元。解题思路题目意思就是问你一个序列中有多少个逆序对。我们如果支付y元将两个相邻的数值进行交换,那么就消除了一个逆序对,和直接算逆序对的个数是相同的意思。那么问题就在于怎样才能有最...
2018-07-28 09:59:18 214
原创 第十一届ACM程序设计竞赛(河南信阳师范学院)感想
呃。。。。这个星期天过的很充实也很开心。周六一大早我一改往常睡懒觉的习惯,早早的就爬起来了,因为今天我们要去信阳师范学院参加河南省的第十一届ACM程序设计竞赛。虽然这次没能去参加蓝桥杯的国赛,但是省赛对于我来说也是一个很好地机会。我们实验室有的学姐学长在周四就启程去了北京参加蓝桥杯的国赛。至于我们这些小菜鸟们就准备去参加省赛。但是早上七点我们到达实验室后却被告知由于大雾我们要等雾散了才能启程。于是...
2018-05-29 09:32:23 959
原创 四六级写作总结
英语四级要求字数120~150,六级要求字数150~200 写作原则:先汉语后英语(其实就是汉译英)写作的步骤: 1、审题(划出所有的写作任务) 2、把划出的写作任务和下列写作模块进行对应 描述 、评论、现象、意义、危害、建议3、根据所对应模块的汉语思路,把写作任务转化成汉语内容 4、检查、翻译。模块分析 模块一描述(图画)——首段专用 关键词...
2018-05-06 20:24:48 533
原创 POJ 3087 Shuffle'm Up【深搜】
题目链接题目意思就类似于我们玩的纸牌洗牌游戏,有两个字符串,现在两个字符串中的字符一个插一个,然后再分为两半,接着进行洗牌工作,如果能够洗到给定的字符串就输出最少的洗牌次数,否则输出-1。解题思路就用深搜来写,我们每次用两个新的字符串在存储洗牌后的两个字符串,用深搜一直去找,知道能够找到给定的字符序列,如果中间出现了循环就直接结束输出-1。代码部分#include ...
2018-04-26 20:16:02 241 1
原创 POJ 1426 Find The Multiple【广搜】
题目链接题目意思给你一个整数n,让你找出一个只包含0和1的数是n的倍数。解题思路这是一个特殊判断题,只要能找到任意一个满足条件的数即可。我们就用广搜从1开始去搜,找到只包含0和1的数是n的倍数输出即可。代码部分#include <iostream>#include <stdio.h>#include <string.h>#i...
2018-04-25 19:45:12 190
原创 POJ 3278 Catch That Cow【广搜】
题目链接题目意思现在一个农夫丢了牛,农夫在n的位置,牛在k的位置。现在农夫有三种行动方式,可以从x走到x+1或者走到x-1,或者走到2*x的地方。现在问你农夫最少走几步能够追到他的牛(假设牛在k处不移动)。解题思路我们就用一般 的广搜去搜农夫能走的三种状态,选出步数最少的输出即可。代码部分#include <iostream>#include <...
2018-04-25 19:35:13 153
原创 POJ 2551 Dungeon Master【三维广搜】
题目链接题目意思有一个3D的地牢,它是由单位立方体构成,现在你可以走上下左右前后六个方向走,现在问你能否从地牢中逃生,如果能最快需要几分钟,如果不能就输出Trapped! 现在给出三个整数L,n,m,其中L表示地牢的阶数,给出每一阶是n*m的地图。解题思路刚开始看这题的时候感觉有点懵,但是再读一遍题就会发现这本质上和原来做的那些广搜题一样,只不过是由平面图换成了立体的图形...
2018-04-25 19:24:21 140
原创 HDU 1728 逃离迷宫【广搜】
题目链接Problem Description 给定一个m × n (m行, n列)的迷宫,迷宫中有两个位置,gloria想从迷宫的一个位置走到另外一个位置,当然迷宫中有些地方是空地,gloria可以穿越,有些地方是障碍,她必须绕行,从迷宫的一个位置,只能走到与它相邻的4个位置中,当然在行走过程中,gloria不能走到迷宫外面去。令人头痛的是,gloria是个没什么方向感的人...
2018-04-25 11:13:49 158
原创 HDU 1312 Red and Black【深搜】
题目链接题目意思现有一个n*m的长方形,上边有两种颜色的地砖。.代表黑色的地砖,#代表白色的地砖,现在让你从@点开始移动,只能走黑色的地砖,问你最多能够走多少块的黑色地砖。解题思路注意刚开始的@也算一块黑色的地砖,直接用深搜,直接就可以计算出能走的黑色地砖数。代码部分#include <iostream>#include <stdio.h>...
2018-04-25 09:36:09 137
原创 HDU 1999 不可摸数
题目链接Problem Description s(n)是正整数n的真因子之和,即小于n且整除n的因子和.例如s(12)=1+2+3+4+6=16.如果任何 数m,s(m)都不等于n,则称n为不可摸数.Input 包含多组数据,首先输入T,表示有T组数据.每组数据1行给出n(2<=n<=1000)是整数。Output 如果n是不可摸数,输出...
2018-04-25 09:23:20 422
原创 HDU 2566 统计硬币 【模拟】
题目链接 Problem Description 假设一堆由1分、2分、5分组成的n个硬币总面值为m分,求一共有多少种可能的组合方式(某种面值的硬币可以数量可以为0)。Input 输入数据第一行有一个正整数T,表示有T组测试数据; 接下来的T行,每行有两个数n,m,n和m的含义同上。Output 对于每组测试数据,请输出可能的组合方式数; ...
2018-04-25 08:58:39 342
原创 POJ 1321 棋盘问题【深搜】
题目链接 Description在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放...
2018-04-23 08:54:04 251
原创 2018 天梯赛及蓝桥杯比赛感想
首先分析一下天梯赛,我第一次出去参加比赛,本来心里就很慌,这样去做题的时候多多少少会有点怕,哎,心里素质太差了。做前几道简单题很顺利,但是后来遇见了我最不擅长的字符串心里就有点慌了,果然不出我所料,提交错误。自己感觉自己写的没错,所以检查错误就看不出来错误,就死在字符串上了。真的是怕啥来啥。可能跟平时我的做题习惯脱不了关系,平时做题就是出错了自己找bug找不出来就找别人帮忙看,不愿意自己去找bug...
2018-04-02 10:47:38 4581 1
原创 网易2018校招 字符串碎片
题目链接题目意思解题思路我们只要计算字符串的碎片有多少个,然后用字符串长度/碎片数量就可得到碎片的平均长度代码部分#include <iostream>#include <string.h>#include <stdio.h>#include <cstring>#include <algorithm>...
2018-03-28 21:11:13 198
原创 网易2018校招 相反数【数位分离】
题目链接题目意思解题思路我们利用数位分离将数字反转加上原来的数字即可。代码部分#include <iostream>#include <string.h>#include <stdio.h>#include <cstring>#include <algorithm>using namespace ...
2018-03-28 21:04:13 289
原创 网易2018校招 魔法币【模拟】
题目链接题目意思 解题思路我们用知道的n去反推,如果是偶数就让n=(n-2)/2,否则就让n=(n-1)/2。直到n=0。这样我们得到的是方案是反过来的,我们将结果反过来输出就可以了。代码部分#include <iostream>#include <string.h>#include <stdio.h>#include <...
2018-03-28 20:58:19 191
原创 蓝桥杯 数字游戏【规律】
题目链接题目意思解题思路我们看一下这个样例的数据1、2、4、7、 11、 3、 9、 3、 11、 7、 4、 2、 1、 1、 2、 4。。。三个人那么每隔两个数就是栋栋说的数,那就是1、 7、 9、 7、 1、 4。。。我们可以看出它中间是递增增加的。 【1+(1+2+3)】%k=7 【7+(4+5+6)】%k=9 【9+(7+8+9)】%k=7 那么我...
2018-03-28 20:50:20 455
原创 蓝桥杯 带分数【数位分离+排列组合】
题目链接题目意思解题思路 首先介绍一个排列组合的一个函数next_permutation(),用这个函数可以直接算排列组合。 数位分离:给你一串数字,我们将这个数串去不断地%10,/10去将其分离开。这道题我们算出1~9的所有排列组合数,然后去将不同的排列组合数按照题意分离判断能不能得到结果和n相同。 直接看代码吧!代码部分#include <iostr...
2018-03-28 20:35:01 458
原创 蓝桥杯 剪格子【深搜】
题目链接题目意思给你一个n*m的矩阵,然后让你将这个矩阵剪成面积相等的两部分,每个格子上的数值代表这个格子的面积。如果有多种解决方案就输出包含左上角格子的那个区域包含的格子的最小数目。 如果没法剪就输出0。解题思路 剪格子可以沿着边缘上下左右四个方向去剪。用深搜去做。只要能搜到面积的一半就能剪。代码部分#include <iostream>#inclu...
2018-03-26 20:53:36 468
原创 蓝桥杯 买不到的数目【扩展欧几里得】
题目链接题目意思将糖果分成一包a个和一包b个的规格,一包糖果不可以拆开购买,然后让你求最大的买不到的数量。解题思路 这个用到了扩展欧几里得,至于这个扩展欧几里得是个什么东东,我也没搞太明白。就用那个公式就可以直接解决这道题。。。。没办法代码部分#include <iostream>#include <stdio.h>#include <...
2018-03-26 20:46:22 296
原创 蓝桥杯 核桃的数量【最小公倍数】
题目链接题目意思给你三个数,让你求这三个数的最小公倍数解题思路用辗转相除法求最大公约数,两数的乘积除两数的最大公约数就得到了最小公倍数。代码部分#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include...
2018-03-26 20:42:03 256
原创 蓝桥杯 回文数字
题目意思题目意思给你一个数n,让你求出5位和6位数的和值是n的回文数并输出。解题思路跟我们平时做的回文串问题一样,就是将5位到6位数遍历一遍输出其中和值为n的回文数就可以了。代码部分#include <iostream>#include <stdio.h>#include <string.h>#include <a...
2018-03-26 20:36:33 484
原创 蓝桥杯 分糖果
题目链接题目意思有n个小朋友围成圈,每个小朋友手中有不同的糖果个数,现在要求每个人将糖果的一半分给左边的小朋友,每轮下来如果小朋友手中的糖果为奇数,老师就给该生补一颗糖果。问你到最后每位小朋友手中糖果数目一样的时候老师要补发多少颗糖果。解题思路 我们用两个不同的数组a,b。用b数组来存放每个人糖果的一半,每次前一个人的糖果数加上后一个人的糖果数就是当前一轮后手中的糖果数,如果...
2018-03-26 20:30:43 252
原创 蓝桥杯 兰顿蚂蚁【模拟】
题目链接 解题思路 这就是一道纯模拟题,主要就是根据题意写出蚂蚁在白格和黑格中不同的变化方式即可。代码部分#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <stack>using ...
2018-03-26 20:21:58 227
原创 计蒜客 合并数字【栈】
题目链接解题思路我们利用栈一边输入一边判断,如果两数之间相差1,就往后输入,或者将栈顶元素输出,接着去栈中找前边的元素接着比较就行了。代码部分#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include &l...
2018-03-26 20:11:54 244
原创 计蒜客 矩阵求和【暴力】
题目链接解题思路他就是让你求101*101的矩阵根据题上要求得到的新矩阵的和。那我们就用暴力将矩阵存起来,直接暴力相加就OK了。代码部分#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <...
2018-03-26 20:01:39 327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人