题意简述长度为n+1的序列a.其中[1..n]每个数都至少出现一次. (n<=1e5),对每个k从1到n+1,询问长度为k的不同的子序列有多少个?答案膜10^9+7 (所以你要输出n+1行) (又是蒯的) 思路框架对于每个k:显然有且仅有一个数字出现两次。找到这两个位置,设为p1,p2,然后答 ...
Atcoder 1218 bzoj 4240 libreoj 2873 「JOISC 2014 Day1」有趣的家庭菜园 题解
题意简述给定一个序列a,长度为n(,你珂以交换序列中的两个数,使得序列满足:对于每个点,要么它>=所有左边的元素,要么它>=所有右边的元素。(形象的说,就是一个山峰)输出最少的交换次数。记得开longlong。 思路倒序排序,一个一个插入,判断是插入在左边还是插入在右边,记录逆序对个数,求出答案 具 ...
51nod 2206 低买高卖 题解
题意简述股票市场一共$n<=2e5$天,每天股票价格是$a_i$。你开始有正无穷的钱,每天珂以买/卖一个单位的股票,也珂以吊也不干。求最大利润(净赚)。 思路弄一个priority_queue,对于第$i$天,选择之前最便宜的一天买来,然后今天卖了。 但显然这样不一定最优,我们需要一个反悔的系 ...
51nod 1963 树上NIM游戏 题解
题意简述多组数据,每次给定一个有$n(<=3e5,\sum n<=1e6)$个节点的树,每个点有点权。两个人玩$Nim$游戏,两人轮流操作。每次操作,珂以把一个点上$>=1$个点权移动到父亲上,如果有一个不能操作了,这个人就输了。判断先手是否会赢。 思路框架深度为奇数的点权异或起来 ...
51nod 1554 欧姆诺姆和项链 题解
题意简述给定一个长度为n(的字符串S,和一个k(,定义一个字符串是漂亮的,当且仅当它珂以表示为恰好k+1个A中间夹着k个B,A,B为任意字符串(珂以为空)。对于S的每个前缀,求它是否是漂亮的。输出一个长度为n的01串表示答案。 栗子:当k=3时,字符串S="ABZABZAB"就是漂亮的,在这里,A= ...
51nod 1524 可除图的最大团 题解
题意简述有一个长度为$n$的序列$a$,$n<=1e6$。根据这个序列生成一个无向图:若$a[u]$和$a[v]$中一个是另一个的倍数,那么$u$到$v$连一条无向边。请你求出这个图的最大团(最大子完全图)。 思路框架设$dp[i]$表示以$i$为最小值的图的最大团。先dp[i]=1,然后dp ...
51nod 1464 半回文 题解
题意简述一个字符串S,长度5000(时间空间都够平方做),只有’a’和’b’两个字符组成。一个字符串A是“半回文”的,当且仅当,对于所有的奇数$i<=(|A|+1)/2$,满足A的正数第$i$个和$A$的倒数第$i$个相等。 请你求出,$S$的所有半回文的子串中,字典序排序第$k$位的是哪个。 ...
51nod 1395 两个回文 题解
题意简述多组数据。每次给定一个字符串$S$,$|S|<=1e5$,请从$S$中选择两个不相交的回文子串使得这两个子串的长度和最大。 思路框架对于每个位置,求出前缀和后缀中最长回文子串。然后枚举断点,更新答案。 具体思路首先考虑如何求出前缀和后缀中的最长回文子串。 然后我们珂以先求最长回文后缀( ...
51nod 1277 字符串中的最大值 题解
题意简述给定一个长度的字符串S,请你求出S所有前缀中,出现次数乘以前缀长度的最大值。 思路框架求一遍next然后dp[next[i]]+=dp[i],求i\times dp[i]的最大值。 具体思路前缀的出现次数?KMP?AC自动机? 但是如果要一个一个弄的话,无论如何都要O(n^2)。那咋整嘛。 ...
51nod 1191 消灭兔子 题解
题意简述有一些箭,每个箭有伤害和价钱两种属性。还有一些兔子,每个兔子有一些血量。两个的数量都是2e5规模。如果一个箭的伤害值大于某个兔子的血量值,那么这个箭就能杀死这只兔子。请你用最少的钱杀死所有的兔子。不行输出NO。 思路框架很明显,对于一只兔子,我们要找能杀死它的箭中最便宜的那个。优先队列维护。 ...