对trie建SAM,询问串倒过来跑到的节点的|right|即为答案. #include<bits/stdc++.h> using namespace std; #define ll long long #define inf 1000000010 #define N 2000010 char getc(){char c=getchar();while ((c<'A'||c>'Z')&&(c<'a'||c>'z')&&(c<'0'||…
[A]Azulejos 题意简述: 有两排瓷砖,每排都有 \(n\) 个,每个瓷砖有高度 \(h_i\) 和价格 \(p_i\) 两种属性. 你需要分别重新排列这两排瓷砖,使得同一排的瓷砖满足价格不降,后一排的瓷砖的高度严格大于前一排对应瓷砖的高度. 判断无解或输出一种合法方案. 题解: 首先要满足价格不降,那么先把两排瓷分别按照 \(p_i\) 排序. 如果同一排中的两个瓷砖 \(p_i\) 不同,那么顺序已经确定.但是如果 \(p_i\) 相同,就可以任意交换顺序. 也就是说,前后两排中的瓷…
这题建立一棵回文树,然后用dfs搜索答案,但是有一点需要注意,就是打vis的标记时,如果标记为1,那么在好几个节点都对同一个字符i打过标记,此时的搜索从字符i点回溯,回到它的父亲节点,搜索其它的字符,回溯的时候把vis[i]标记成0了,之前的vis[i]标记全被清空了,如果该父亲的其它字符节点下,有字符i的孩子,则此时统计就会出错.所以打vis标记的时候让vis++,而不是标记为0. #include <iostream> #include <stdio.h> using name…
序列自动机跑s串 假设k为s和t相同的长度,初始时相同长度为0 取s串中大于t[i]的最左边的位置,用n-tmp+1+i-1更新答案,tmp是最左端的位置 然后去t[i]相等的位置,走到下一位,如果下一位的位置不存在或者在tmp的右边,跳出循环即可. 最后就是s串中找出了一个和t串相同的串,之后的长度只要不为0,也是可以用来更新答案的. #include <bits/stdc++.h> using namespace std; const int maxn=1e6+10; const int…
原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 题目翻译: 试题来源 ACM/ICPC World Finals 2013 C 问题描述 你现在要为智能汽车负责设计一种很高级的集中管理系统.目的是利用全球信息指导早上从郊区赶往市中心的乘客如何在避免交通堵塞的情况下更好地到达城市中心. 不幸的是,乘客们对城市非常了解,而且都相当自私,你不能简单地甩给他们一条比平常走的还要长的路径(否则他们会直接无视你的指…
The Preliminary Contest for ICPC Asia Shanghai 2019 C Triple(FFT+暴力) 传送门:https://nanti.jisuanke.com/t/41400 题意: 给你三个数组a,b,c,要你求有多少个三元组(i,j,k),使得 \[ \begin{array}{l}{\left|A_{i}-B_{j}\right| \leq C_{k}, \text { and }} \\ {\left|B_{j}-C_{k}\right| \leq…
题目链接: [十二省联考2019]字符串问题 首先考虑最暴力的做法就是对于每个$B$串存一下它是哪些$A$串的前缀,然后按每组支配关系连边,做一遍拓扑序DP即可. 但即使忽略判断前缀的时间,光是连边的时间就会爆炸,显然不能暴力连边. 对于前缀不好解决,可以将字符串翻转然后变成判断是否是后缀. 可以发现对于后缀自动机的$parent$树,每个节点是子树内所有节点的后缀. 那么我们可以利用$parent$树来优化建图过程,将树上每个点向子节点连边. 对于每个$A$串和$B$串在后缀自动机上匹配出对应…
原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 题目翻译: 问题描述 有n个机器,每个机器有2个芯片,每个芯片可以放k个电池. 每个芯片能量是k个电池的能量的最小值. 两个芯片的能量之差越小,这个机器就工作的越好. 现在有2nk个电池,已知它们的能量,我们要把它们放在n个机器上的芯片上, 使得所有机器的能量之差的最大值最小. 输入格式 第一行,两个正整数,n和k. 第二行,2nk个整数,表示每个电池的能…
原题下载 : http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 这道题其实是2013年我AC的第一道题,非常的开心,这两天把2013年World Finals我能写的题都写的差不多了(我只写了A B C D F H I这七道题)开始着手来写解题报告,部分题目在UVaOJ上还存在超时,但是Tsinsen上面都AC了,题目的翻译转自清橙上国家集训队员们的翻译.每道题会提供题目翻译.题目大意.题目思路与解法.复杂度分析.…
原题下载:http://icpc.baylor.edu/download/worldfinals/problems/icpc2013.pdf 题目翻译: 问题描述 海盗Dick受够了在公海上厮杀.抢劫.盗窃了,这把生活弄得一塌糊涂.所以他决定隐退,而且他已经找到了一座理想的小岛,只要钱没花完就能在那儿安度余生.他现在有很多金币,他想要把这些金币存在一个宝箱里(毕竟他还是个海盗).Dick可以建造一个边长都是正整数的长方体宝箱,宝箱底面的长宽不能超过某个特定的尺寸,不过宝箱的高度可以是任意正整数.…