随笔分类 - OI
摘要:下面是一段实现冒泡排序算法的C++代码:for (int i=1;ia[j+1]) swap(a[j],a[j+1]);其中待排序的a数组是一个1~n的排列,swap函数将交换数组中对应位置的值。对于给定的数组a以及给定的非负整数k,使用这段代码执行了正好k次swap...
阅读全文
摘要:科学家在观测一棵大树,这棵树在不断地生长,科学家给这棵树的每个节点编了号。开始的时候,这棵树很小只有4个节点,一号点为根,其他三个节点挂在上面。在接下来的M次观察中,科学家每次都能看见这棵树从叶子处长出新的两个节点来。如果当前这棵树有N个节点,那么这棵树的新的两个节点...
阅读全文
摘要:题目传送门四边形不等式第一题,口胡一下我们原来的方程式:f[i][j]=sum[i][j]+max(f[i][k]+f[k+1][j]){i#include#include#define N 2010using namespace std;int n,m,a[N],s...
阅读全文
摘要:物理题目传送门求第k大的子串?SAM模板题啊CLJ的论文都讲了怎么做啊,把自动机看成一个后缀Trie求出size让后像多叉平衡树那样乱搞就好了~比前两个哈希的题好多了~ (顺便,hdu高亮好好看啊)#pragma GCC opitmize("O3")#pragma G...
阅读全文
摘要:题目传送门和上一篇题目几乎一样,不过还是这道题良心!bzoj好!poj慢到出*splay大法好! 两次AC不卡常!#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#include#include#...
阅读全文
摘要:题目传送门经典的数据结构维护字符串哈希这里用了很慢很慢的splay各种T(也可能是死循环)不过没办法因为会写splay的能力还是要有的#pragma GCC opitmize("O3")#pragma G++ opitmize("O3")#include#includ...
阅读全文
摘要:最近,阿Q开了一间宠物收养所。收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物。每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特殊的公式,得出该领养者希望领养的宠物的特点值a(a是一个正整数,a#include#incl...
阅读全文
摘要:题目传送门哈哈哈广义SAM真的好简(du)单(liu)啊到时候讲课可以拿来祸害众生,Yeah!好了开始讲题解,我们将所有字符串加入广义SAM里面对每一个节点维护一个bitset表示它在哪些主串中出现过,让后标记上传就用或运算就好了因为题目要求输出方案,加上一个dfs就...
阅读全文
摘要:题目传送门题意:对一个字符串求一个最长的子串使得它至少出现k次额,因为这个题目呢,他的字符集非常大(100W)所以直接用SAM是不行了,我们考虑用离散化+SA,让后就可以分块rmq了当然这样很麻烦,我们还是用SAM,但是儿子集合用map来存,这样空间就是O(n)的,时...
阅读全文
摘要:题目传送门题意:对一个序列的差分求出现至少两次且两次不相交的最长子串也是SA和SAM都可以做,SA稍微麻烦SA做法:二分+height分段rmqSAM做法(太神了):对于每个节点的right集合,求出其中的最大值和最小值那么合法的长度一定为min(mx[x],r[x]...
阅读全文
摘要:题目传送门题意:求两个字符串的LCS这个题是SA的经典题,也是SAM的经典题SA做法:连接两个字符串(中间加个#)让后求height,Answer=Max{height[i]}SAM做法:从开头匹配字符串,如果当前节点x能继续匹配就继续如果不能匹配,就令x=f[x]直...
阅读全文
摘要:题目传送门AC自动机第一题~一看就是一个非常简单的多串匹配问题了,输出方案?记录一下就好了注意这里code是Trie图,它是AC自动机的改进版本,有效利用了原本无用的边,这反而简化了代码#include#include#include#include#define N...
阅读全文
摘要:最近教练叫我去讲字符串专题,于是来写一写这方面的内容主要就讲以下几个吧:1.Kmp 2.Extended Kmp3.Trie4*.AC Automation (Trie Graph)5*.String Hash6.Suffix Array7*.Suffix Autom...
阅读全文
摘要:维护一个序列,使它可以进行下面两种操作:1.在末尾添加一个数字x2.将整个序列变成第x次操作后的样子在每次操作后,输出当前序列的最长上升子序列的长度序列初始时为空嗯,可持久化线段树的裸题额这可是noip提高组难度的题,我们发现所有操作可以变成一棵树(离线做法老套路了)...
阅读全文
摘要:国家一级爬山运动员h10今天获得了一张有着密密麻麻标记的地图,在好奇心的驱使下,他又踏上了去爬山的路。对于爬山,h10有一个原则,那就是不走回头路,于是他把地图上的所有边都标记成了有向边。他决定从点S出发,每到达一个新的节点他就可以获得一定的成就值。同时h10又是一个...
阅读全文
摘要:自从htn体验了一把飙车的快感,他就下定决心要闭门造车!但是他两手空空怎么造得出车来呢?无奈的他只好来到了汽车零部件商店。一走进商店,玲琅满目的各式零件看得htn眼花缭乱。但是他很快便反应过来:我只要买一套好的零件就行。首先它们的性能差不能太大,否则汽车的兼容性不好,...
阅读全文
摘要:Sherco是一位经验丰富的魔♂法师。Sherco在第零次圣杯战争中取得了胜利,并取得了王之宝藏——王の树。他想把这棵树砍去任意条边,拆成若干棵新树,并装饰在他的摩托上,让他的摩托更加酷炫。但Sherco认为,这样生成的树不具有美感,于是Sherco想让每棵新树的节点...
阅读全文
摘要:由于n很小(#include#includeusing namespace std;int f[16][3][1=g[0] && f[1]>=g[1];}int main(){ scanf("%d",&n); MS=1<<n+1; for(int i=1;i<=n;++i){ scanf("%d...
阅读全文
摘要:小a是一名强迫症患者,现在他要给一群带颜色的珠子排成一列,现在有N中颜色,其中第i中的颜色的珠子有s[i]个,要求排列中第i种颜色的最后一个珠子一定要排在第i+1种颜色的最后一个珠子前面,问有多少种方案 ΣS#include#include#define LL long long#define N ...
阅读全文
摘要:相信大家都在长训班学过树塔问题,题目很简单求最大化一个三角形数塔从上往下走的路径和。走的规则是:(i,j)号点只能走向(i+1,j)或者(i+1,j+1)。如下图是一个数塔,映射到该数塔上行走的规则为:从左上角的点开始,向下走或向右下走直到最底层结束。 1 3 8 ...
阅读全文