pty爬山(mountain) 在Pty学校附近,有一座名之为岳之麓的高山.Pty很喜欢和(哔--)一起爬山.山的平面模型如下:山由一个顶点集:A1,A2-An给定,保证Ai的x单调递增.我们将Ai和Ai+1之间连上线段,表示山的某一段.如下图所示:Pty想要爬到这座山的最高的顶点,当两个顶点的高度相同时,我们认为x比较大的顶点要高一些.Pty不是盲人,所以他将会在爬山时采取一些策略,使得他能够尽量快的到达最高的顶点.Pty从初始的顶点出发,往左右看去,他将朝他能够看到的最高的顶点方向走去.当走…
[GDOI2014模拟]JZOJ2020年8月14日提高组 服务器 题目 Time and Memory Limits Description 我们需要将一个文件复制到n个服务器上,这些服务器的编号为S1, S2, -, Sn. 首先,我们可以选择一些服务器,直接把文件复制到它们中:将文件复制到服务器Si上,需要花费ci > 0的置放费用.对于没有直接被复制文件的服务器Si来说,它依次向后检查Si+1, Si+2, -直到找到一台服务器Sj:Sj中的文件是通过直接复制得到的,于是Si从Sj处间接…
[GDOI2014模拟]JZOJ2020年8月14日T2 网格 题目 Time and Memory Limits Description 某城市的街道呈网格状,左下角坐标为A(0, 0),右上角坐标为B(n, m),其中n >= m.现在从A(0, 0)点出发,只能沿着街道向正右方或者正上方行走,且不能经过图示中直线左上方的点,即任何途径的点(x, y)都要满足x >= y,请问在这些前提下,到达B(n, m)有多少种走法. Input 输入文件中仅有一行,包含两个整数n和m,表示城市街区的…
题目 给你一棵每条边从父亲指向儿子的树,每条边上面有一个字母. 从树上的任意一点出发,走出的路径就是对应一个子串. (这不是\(Trie\),因为每个父亲可能会连出字母相同的边) 再给你一个字符串\(S\),让你求\(S\)的子串和树上路径的对应个数. 思考历程 一开始以为路径是从根节点出发,于是我就想,这难道不是一个AC自动机的裸题吗? 啪啪啪地就把AC自动机打了上去-- 然后发现样例过不去-- 于是终于理解完题目大意,开始死磕. 但是一直都没有放弃AC自动机的做法. 一波乱搞后,我终于爆0了…
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define maxn 800005 #define maxm 1600005 #define maxl 1600005 #define ll long long using namespace std; int n,cnt,m,last,root,tot,…
问题描述 一天蒜头君得到 n 个字符串 si​,每个字符串的长度都不超过 10. 蒜头君在想,在这 n 个字符串中,以 si​ 为后缀的字符串有多少个呢? 输入格式 第一行输入一个整数 n. 接下来 n 行,每行输入一个字符串 si​. 输出格式 输出 n 个整数,第 i 个整数表示以 si​ 为后缀的字符串的个数. 数据范围 对于 50\%50% 的数据,1≤n≤10^3. 对于 100\%100% 的数据,1 ≤n≤10^5. 所有的字符串仅由小写字母组成. 样例输入 3ba a aba 样…
大模拟好啊! 万一远古计算机让我写个解释器还真是得爆零了呢. 题目背景 「千歌です」(我是千歌).「曜です」(我是曜).「ルビィです」(我是露比).「3人合わせて.We are CYaRon! よろしくね!」(三人在一起,我们是CYaRon!多多指教哦!) CYaRon!的三人在学习了编程之后,决定发明一种自己的编程语言,她们称为CYaRon!语. (ltt: 明明是我帮她们发明的.) 可是,因为洛谷评测机这时候突然爆了,ltt没有时间再帮CYaRon!的三位小姐姐写CYaRon!语的解释器了.…
题目描述 在神秘的东方有一棵奇葩的树,它有一个固定的根节点(编号为1).树的每条边上都是一个字符,字符为a,b,c中的一个,你可以从树上的任意一个点出发,然后沿着远离根的边往下行走,在任意一个节点停止,将你经过的边的字符依次写下来,就能得到一个字符串,例如: 在这棵树中我们能够得到的字符串是: c, cb, ca, a, b, a 现在pty得到了一棵树和一个字符串S.如果S的一个子串[l,r]和树上某条路径所得到的字符串完全相同,则我们称这个子串和该路径匹配.现在pty想知道,S的所有子串和树…
原题传送门 神奇的题目诶 原来以为字符串比较一定要O(NlogN) 结果发现可以均摊O(N) 首先我们来讲一讲原理 我们有3个指针i,j,k i=0,j=1,k=0 一开始我们不断对k+1直到找到ch[i+k]!=ch[j+k] 那么我们进行判断 如果ch[i+k]>ch[j+k] 那么假设在ch[i]与ch[j]之前的字符串相同,而且我们已知ch[i+1]~ch[i+k-1]与ch[j+1]~ch[j+k-1]的字符串相同, 比较到ch[i+k]与ch[j+k]时,我们会发现ch[j+k]比c…
题目描述 给你一串由小写字母组成的字符串,希望你把它划分成一些小段,使得每一小段字符串中的字母 都不相同,并且希望分的段数尽量少. 然后,把这些小段按字典序排序后输出,中间由一个空格分隔. 例如:字符串 ”nnsmpmn”,最少分成 3 小段:”n”,”nsmp”,”mn”. 排序后输出:mn n nsmp 注意,有时候符合上面要求的方案可能有多个,就要输出排序后字典序最小的那个. 例如:字符串 ”aba” 可以有 2 种划分:a/ba 和 ab/a,排序后分别是:”a ba” 和 ”a ab”…