点此进入比赛

得分: \(97+0+10=107\)

排名: \(Rank\ 3\)

\(Rating\):\(+47\)

\(T1\):【HHHOJ187】Hashit(点此看题面

容易想到可以用后缀自动机来做,结果比赛时被\(Hack\)了。(后缀自动机题解详见博客【BZOJ5084】hashit

正解貌似是后缀数组,但实际上\(X\_o\_r\)神仙的后缀自动机也能过。

反正我的是过不了。

这里贴出被\(Hack\)掉的代码:

#include<bits/stdc++.h>
#define Tp template<typename Ty>
#define Ts template<typename Ty,typename... Ar>
#define Reg register
#define RI Reg int
#define Con const
#define CI Con int&
#define I inline
#define W while
#define N 100000
#define LL long long
using namespace std;
char s[N+5];
class SuffixAutomation//后缀自动机
{
private:
#define F5(x,op) (void)(ans+=1LL*(op)*(O[x].L-O[GetFa(x)].L))//更新答案
#define Co(x,y) (void)(++O[O[x].F=y].Sz)//连边
static const int SZ=N,C=26;int tot;LL ans;
struct SAM {int L,F,Sz,Ex,Nxt,S[C+5];}O[(SZ<<1)+5];
I int GetFa(CI x) {return O[O[x].F].Ex?O[x].F:O[x].F=GetFa(O[x].F);}//求第一个存在的父亲
I int GetNxt(int& x) {return O[x].Ex?x:x=GetNxt(O[x].Nxt);}//求出第一个存在的后继
public:
int ExSt[N+5],SamP[N+5],TwoP[N+5];//ExSt为一个记录存在节点的栈,SamP和TwoP分别存储一个字符在SAM中建的两个节点的编号
I SuffixAutomation() {O[0].Ex=O[SamP[0]=tot=1].Ex=1;}//初始化后缀自动机
I void Insert(CI x,CI id,CI lst)//插入字符
{
RI p=lst,q,k,now=SamP[id]=++tot;O[now].L=O[p].L+1,O[now].Ex=1;
W(p&&!GetNxt(O[p].S[x])) O[p].S[x]=now,p=O[p].F;
if(!p) return Co(now,1),F5(now,1);
if(O[p].L+1==O[q=O[p].S[x]].L) return Co(now,q),F5(now,1);
O[k=TwoP[id]=++tot]=O[q],O[k].L=O[p].L+1,O[k].Sz=0,O[k].Ex=1,O[k].Nxt=q,
F5(q,-1),Co(now,k),Co(q,k),F5(q,1),F5(k,1),F5(now,1);//删除原来的贡献,更新新的贡献
W(p&&!(GetNxt(O[p].S[x])^q)) O[p].S[x]=k,p=O[p].F;
}
I void Delete(CI x) {O[x].Ex=0,F5(x,O[x].Sz-1),O[GetFa(x)].Sz+=O[x].Sz-1;}//删除字符
I LL GetAns() {return ans;}//求答案
}S;
int main()
{
RI i,len,x,T=0;for(scanf("%s",s+1),len=strlen(s+1),i=1;i<=len;++i)
{
if(s[i]^'-') S.Insert(s[i]&31,i,S.SamP[S.ExSt[T]]),S.ExSt[++T]=i;//加入字符,更新栈
else//删除字符
{
S.TwoP[S.ExSt[T]]&&(S.Delete(S.TwoP[S.ExSt[T]]),0),//若插入了两个节点,则删除第二个插入的节点
S.Delete(S.SamP[S.ExSt[T]]),--T;//删除第一个插入的节点
}printf("%lld\n",S.GetAns());//输出答案
}return 0;
}

\(T2\):【HHHOJ188】Polycomp(点此看题面

多项式神仙题,题目都看不懂。

\(T3\):【HHHOJ189】Garrafeira(点此看题面

也是神仙题,比赛时就写了一个\(10\)分的大暴力。。。

【HHHOJ】ZJOI2019模拟赛(十三)03.10 解题报告的更多相关文章

  1. nowcoder(牛客网)提高组模拟赛第四场 解题报告

    T1 动态点分治 就是模拟..... 但是没有过!! 看了题解之后发现.... 坑点:有可能 \(x<=r\),但是

  2. nowcoder 提高组模拟赛 最长路 解题报告

    最长路 链接: https://www.nowcoder.com/acm/contest/178/A 来源:牛客网 题目描述 有一张 \(n\) 个点 \(m\) 条边的有向图,每条边上都带有一个字符 ...

  3. 「2018-12-02模拟赛」T2 种树 解题报告

    2.种树(tree.pas/cpp/in/out) 问题描述: Fanvree 很聪明,解决难题时他总会把问题简单化. 例如,他就整天喜欢把图转化为树.但是他不会缩环,那他怎么转化呢? 这是一个有 n ...

  4. 2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告

    2016 第七届蓝桥杯 c/c++ B组省赛真题及解题报告 勘误1:第6题第4个 if最后一个条件粗心写错了,答案应为1580. 条件应为abs(a[3]-a[7])!=1,宝宝心理苦啊.!感谢zzh ...

  5. 2014 ACM/ICPC 鞍山赛区现场赛 D&amp;I 解题报告

    鞍山现场赛结束了呢-- 我们出的是D+E+I三道题-- 吾辈AC掉的是D和I两道,趁着还记得.先在这里写一写我写的两道水题D&I的解题报告吧^_^. D题的意思呢是说星云内有一堆排成一条直线的 ...

  6. 无聊的活动/缘生意转(2018 Nova OJ新年欢乐赛B题)解题报告

    题目2(下面的太抓 我重新写了个背景 其他都一样) 无聊的活动 JLZ老师不情愿的参加了古风社一年一度的活动,他实在不觉得一群学生跳舞有什么好看,更不明白坐在身后的学生为什么这么兴奋(看小姐姐),于是 ...

  7. 【HHHOJ】ZJOI2019模拟赛(十二)03.03 解题报告

    点此进入比赛 得分: \(0+77+20=97\) 排名: \(Rank\ 5\) \(Rating\):\(+46\) \(T1\):[HHHOJ178]依神(点此看题面) 这套题目中的唯一一道传统 ...

  8. 【HHHOJ】ZJOI2019模拟赛(十五)03.17 解题报告

    点此进入比赛 得分: \(42+10+14=66\) 排名: \(Rank\ 3\) \(Rating\):\(+53\) \(T1\):[HHHOJ200]稗田的梦中之梦(点此看题面) 暴力\(DF ...

  9. 【HHHOJ】ZJOI2019模拟赛(十四)03.12 解题报告

    点此进入比赛 得分: \(50+5+24=79\) 排名: \(Rank\ 2\) \(Rating\):\(+79\) \(T1\):[HHHOJ197]古明地(点此看题面) 基本上全部时间都用来想 ...

随机推荐

  1. 4.会话管理(Session)

    1.会话管理的概念和基本原理: 会话管理概念: 会话的实现过程: 2.使用Cookie.隐藏域.URL重写实现会话管理 创建并向客户端发送Cookie; 从客户端读取Cookies Cookie的方法 ...

  2. about rand and reflect

    select regexp_replace(reflect("java.util.UUID", "randomUUID"), "-", &q ...

  3. php连接数据库mysql数据库

    查找数据 $con = mysqli_connect('localhost', 'root', '', 'mydb'); if (!$con) { die('数据库连接失败' . mysqli_con ...

  4. vue2.X+elementUI表单自定义验证

    <template> <div class="taxi-appointment-dairen"> <el-form :model="rule ...

  5. iTween Scale缩放

    void Start () { //键值对儿的形式保存iTween所用到的参数 Hashtable args = new Hashtable(); //放大的倍数 args.Add(, , )); / ...

  6. sysbench测试MySQL筛选tps

    log=$1tps_array=`awk -F '[,:]' '{print $4}' ${log}`zero=0 for tps in ${tps_array}do tps=`echo ${tps} ...

  7. 案例52-crm练习新增客户中加入文件上传功能(struts2文件上传)

    1 jsp/customer/add.jsp 完整代码: <%@ page language="java" contentType="text/html; char ...

  8. GitKraken使用教程-基础部分(3)

    5. 克隆服务器上的项目 首先,返回主界面,点击File => Clone Repo,选择 Clone with URL,如下图: 图 5‑1 SSH方式克隆仓库界面 1) SSH 方式连接仓库 ...

  9. POJ 1182——食物链——————【种类并查集】

    食物链 Time Limit:1000MS     Memory Limit:10000KB     64bit IO Format:%I64d & %I64u Submit Status P ...

  10. 【snmp】测试流程

    一.SNMP协议概述 SNMP是基于TCP/IP协议族的网络管理标准,是一种在IP网络中管理网络节点(如服务器.工作站.路由器.交换机等)的标准协议.SNMP能够使网络管理员提高网络管理效能,及时发现 ...