题目来源:noi2018模拟测试赛(二十二)

毒瘤板题+提答场……真tm爽

提答求最大团,各路神仙退火神仙随机化八仙过海

题意:

题解:

支持双端插入的回文自动机板题

代码:

 #include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<queue>
#define inf 2147483647
#define eps 1e-9
using namespace std;
typedef long long ll;
typedef double db;
int q,cnt=,anss,top[],last[],son[][],len[],fail[],dep[],st[];
ll ans=;
char op[],x[];
int newn(int l){
len[cnt]=l;
return cnt++;
}
void init(){
memset(son,,sizeof(son));
memset(st,-,sizeof(st));
newn();
newn(-);
top[]=q+;
top[]=q+;
last[]=last[]=;
fail[]=;
}
int getfail(int u,int op){
while(st[top[op]]!=st[top[op]+(op?-:)*(len[u]+)])u=fail[u];
return u;
}
void extend(int ch,int op){
if(op)st[++top[op]]=ch;
else st[--top[op]]=ch;
int nw=getfail(last[op],op);
if(!son[nw][ch]){
int nn=newn(len[nw]+);
fail[nn]=son[getfail(fail[nw],op)][ch];
dep[nn]=dep[fail[nn]]+;
if(len[nn]==top[]-top[]+)last[op^]=nn;
son[nw][ch]=nn;
}
last[op]=son[nw][ch];
ans+=dep[last[op]];
}
int main(){
scanf("%d",&q);
init();
while(q--){
scanf("%s%s",op,x);
extend(x[]-'a',op[]=='r');
printf("%lld %d\n",ans,cnt-);
}
return ;
}

【XSY2968】线性代数的更多相关文章

  1. 【BZOJ-3996】线性代数 最小割-最大流

    3996: [TJOI2015]线性代数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1054  Solved: 684[Submit][Statu ...

  2. 斯坦福大学CS224d基础1:线性代数回顾

    转自 http://blog.csdn.net/han_xiaoyang/article/details/51629242 斯坦福大学CS224d基础1:线性代数知识 作者:Zico Kolter ( ...

  3. 算法库:基础线性代数子程序库(Basic Linear Algebra Subprograms,BLAS)介绍

    调试DeepFlow光流算法,由于作者给出的算法是基于Linux系统的,所以要在Windows上运行,不得不做大量的修改工作.移植到Windows平台,除了一些头文件找不到外,还有一些函数也找不到.这 ...

  4. 【BZOJ】【TJOI2015】线性代数

    网络流/最小割/最大权闭合图 2333好开心,除了一开始把$500^2$算成25000……导致数组没开够RE了一发,可以算是一次AC~ 咳咳还是回归正题来说题解吧: 一拿到这道题,我就想:这是什么鬼玩 ...

  5. OpenGLES 怎样在十天内掌握线性代数 - 希望这是真的!

    OpenGLES 怎样在十天内掌握线性代数 - 希望这是真的! 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&q ...

  6. MIT线性代数课程 总结与理解-第一部分

    概述 个人认为线性代数从三个角度,或者说三个工具来阐述了线性关系,分别是: 向量 矩阵 空间 这三个工具有各自的一套方法,而彼此之间又存在这密切的联系,通过这些抽象出来的工具可以用来干一些实际的活,最 ...

  7. 线性代数-矩阵-【1】矩阵汇总 C和C++的实现

    矩阵的知识点之多足以写成一本线性代数. 在C++中,我们把矩阵封装成类.. 程序清单: Matrix.h//未完待续 #ifndef _MATRIX_H #define _MATRIX_H #incl ...

  8. 线性代数-矩阵-【2】矩阵生成 C和C++实现

    矩阵的知识点之多足以写成一本线性代数. 所以我们把矩阵的运算封装成矩阵类.以C++为主进行详解. 点击这里可以跳转至 [1]矩阵汇总:http://www.cnblogs.com/HongYi-Lia ...

  9. 带你领会 线性代数 微积分的本质 3blue1brown 动画效果帅出天际

    前段时间在 哔哩哔哩 上偶然发现了 3blue1brown 精美的动画,配上生动的讲解,非常适合帮助建立数学的形象思维 其中两大系列,非常值得反复观看: 线性代数的本质(Essence of line ...

随机推荐

  1. 小白学习Spark系列六:Spark调参优化

    前几节介绍了下常用的函数和常踩的坑以及如何打包程序,现在来说下如何调参优化.当我们开发完一个项目,测试完成后,就要提交到服务器上运行,但运行不稳定,老是抛出如下异常,这就很纳闷了呀,明明测试上没问题, ...

  2. JQuery课堂学习笔记

    第1课 JQuery技术简介 <%@ page language="java" import="java.util.*" pageEncoding=&qu ...

  3. fs

    yum install -y make expat-devel git gcc-c++ autoconf automake libtool wget python-devel ncurses-deve ...

  4. MySQL导入到SQLServer

    Mysql是在Linux环境服务器,MSSQL在windows服务器上 1.在MSServer中安装VPN 2.为VPN配置Mysql服务器账号 3.账号中的文件 4.在MSSQL服务器上安装mysq ...

  5. 在 vue-test-utils 中 mock 全局对象

    vue-test-utils 提供了一种 mock 掉 Vue.prototype 的简单方式,不但对测试用例适用,也可以为所有测试设置默认的 mock. mocks 加载选项 mocks 加载选项 ...

  6. base64 编码的作用及原理

    Base64编码的作用:由于某些系统中只能使用ASCII字符.Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法.它使用下面表中所使用的字符与编码. 而且base64特别适合在 ...

  7. 原生js,时间日期简单应用。

    一.数码时钟,滚动切换时间. <!DOCTYPE html> <html lang="en"> <head> <meta charset= ...

  8. rails create方法ActiveModel::ForbiddenAttribute的问题

    rails create方法ActiveModel::ForbiddenAttribute的问题 def create @ad = Ad.new(ad_params) @ad.save end pri ...

  9. [React] Reference a node using createRef() in React 16.3

    In this lesson, we look at where we came from with refs in React. Starting with the deprecated strin ...

  10. Python标准库:内置函数callable(object)

    假设对象object參数是能够调用的对象,就返回True.否则返回False.只是要注意的是,当一个对象是能够调用的.并不表示调用该对象时运行一定成功,但不可调用的对象去调用时一定不会成功.假设类对象 ...