BZOJ 3881 COCI 2015 Divljak】的更多相关文章

题面 Description Tom有n个字符串S1,S2...Sn,Jerry有一个字符串集合T,一开始集合是空的. 接下来会发生q个操作,操作有两种形式: "1 P",Jerry往自己的集合里添加了一个字符串P. "2 x",Tom询问Jerry,集合T中有多少个字符串包含串Sx.(我们称串A包含串B,当且仅当B是A的子串) Jerry遇到了困难,需要你的帮助. Input 第1行,一个数n: 接下来n行,每行一个字符串表示Si: 下一行,一个数q: 接下来q行…
Description 给定一个正整数序列 \(a_1,a_2,\cdots,a_n\),求 \[ \sum_{i=1}^n\sum_{j=i}^n(j-i+1)\min(a_i,a_{i+1},\cdots,a_j)\max(a_i,a_{i+1},\cdots,a_j) \] Input 第 \(1\) 行,一个整数 \(n\): 第 \(2\dots n+1\) 行,每行一个整数表示序列 \(a\). Output 输出答案对 \(10^9\) 取模后的结果. Sample Input 4…
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3743 一开始想到了树形DP,处理一下子树中的最小值,向上的最小值,以及子树中的最长路和向上的最长路,就可以得到答案,可以DP: 然而写着写着写不下去了,不会求向上最小值和最长路: 于是看看TJ,原来要再记录一个次长路! 然而写挫了,写不下去了... #include<iostream> #include<cstdio> #include<cstring> #inc…
[LOJ 2134][UOJ 132][BZOJ 4200][NOI 2015]小园丁与老司机 题意 给定平面上的 \(n\) 个整点 \((x_i,y_i)\), 一共有两个问题. 第一个问题是从原点 \((0,0)\) 出发, 在只能向←↖↑↗→五个方向中有未到达的点的方向走且在没有到达一个点的时候不能中途转弯的情况下最多能到达的点数, 并输出一种可行方案. 第二个问题是如果用若干可以从任意点出发但是只能向↖↑↗方向沿着所有可能出现在最优解的直线上走的压路机将所有可能出现在最优解上的边都走过…
[LOJ 2133][UOJ 131][BZOJ 4199][NOI 2015]品酒大会 题意 给定一个长度为 \(n\) 的字符串 \(s\), 对于所有 \(r\in[1,n]\) 求出 \(s\) 的所有LCP不小于 \(r\) 的后缀对的个数以及这些后缀对所能组成的最大权值. 一个后缀对 \((a,b)\) 的权值是它们左端点的权值的积. \(n\le 3\times 10^5\). 题解 很久以前写的SAM沙雕题 因为要求LCP所以我们把这个串reverse一下用SAM搞. 根据后缀自…
[BZOJ 3992] [SDOI 2015] 序列统计(DP+原根+NTT) 题面 小C有一个集合S,里面的元素都是小于质数M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属于集合S.小C用这个生成器生成了许多这样的数列.但是小C有一个问题需要你的帮助:给定整数x,求所有可以生成出的,且满足数列中所有数的乘积mod M的值等于x的不同的数列的有多少个.小C认为,两个数列{Ai}和{Bi}不同,当且仅当至少存在一个整数i,满足Ai≠Bi.另外,小C认为这个…
[BZOJ 3930] [CQOI 2015]选数(莫比乌斯反演+杜教筛) 题面 我们知道,从区间\([L,R]\)(L和R为整数)中选取N个整数,总共有\((R-L+1)^N\)种方案.求最大公约数刚好为K的选取方案有多少个.由于方案数较大,你只需要输出其除以1000000007的余数即可. \[N,K,L,H \leq 10^9,H-L \leq 10^5\] 分析 \(\because \gcd(ka,kb)=k\gcd(a,b)\),我们先把\(L,R\)除以\(K\),然后问题就变成了…
http://www.lydsy.com/JudgeOnline/problem.php?id=3881 好难的一道题啊qwq 一开始我想对T建AC自动机,根本不可做. 正解是对S建AC自动机. fail树的性质:一棵子树中所有的点都有子树的根这个后缀. 对于要插入的一个串\(P_x\),我们在AC自动机上匹配它. 考虑问题要问\(S_x\)是多少\(P_x\)的子串,子串可以表示成一个前缀的后缀. 匹配过程中经过的所有点都可以当做\(P_x\)的一个前缀,暴力做法是对每个当做\(P_x\)前缀…
3881: [Coci2015]Divljak 题意:添加新文本串,询问某个模式串在多少种文本串里出现过 模式串建AC自动机,考虑添加一个文本串,走到的节点记录下来求树链的并 方法是按dfs序排序去重,每个点+1,相邻点lca-1 #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> using namespac…
3881: [Coci2015]Divljak Time Limit: 20 Sec  Memory Limit: 768 MBSubmit: 553  Solved: 176[Submit][Status][Discuss] Description Alice有n个字符串S_1,S_2...S_n,Bob有一个字符串集合T,一开始集合是空的. 接下来会发生q个操作,操作有两种形式: “1 P”,Bob往自己的集合里添加了一个字符串P. “2 x”,Alice询问Bob,集合T中有多少个字符串包…