05 2020 档案

摘要:D. Yet Another Yet Another Task 题意 给出一个长度为$n$的整数数组,让找出一个连续子序列,它的和减去最大值是最大的。 思路 我写的代码有点多了。。。 ST表+单调队列。 因为是减去最大值,所以我们可以枚举每个数字作为最大值。 左边第一个大于它的数字到右边第一个大于它 阅读全文
posted @ 2020-05-29 22:21 Valk3 阅读(222) 评论(0) 推荐(0)
摘要:C. Mixing Water 题意 现在有两种杯子,一种杯子里是温度为 h 的热水,另一种杯子里是温度为 C 的水, 向一个容量无限大的容器中,依次倒入热水,凉水,热水,凉水.....,问达到最接近 给出的温度 t 的操作次数为多少? 思路 写一下可以知道,所有偶数次的温度是相同的,都是$\fra 阅读全文
posted @ 2020-05-29 21:52 Valk3 阅读(252) 评论(0) 推荐(0)
摘要:C. Celex Update 题意 有一个无限大的表格,按照某个方式填上数字。给出T个询问,每个询问 给出两个坐标$(x1,y1),(x2,y2)$,只能向下或者向右移动,问从第一个点移动 到第二个点,有多少种不同的路径和。 题解 直接猜的是,所有路径和都不相同。 写组合公式的时候,突然想到这个答 阅读全文
posted @ 2020-05-28 11:28 Valk3 阅读(206) 评论(0) 推荐(0)
摘要:D. The Best Vacation 题意 某个地方,一年有$n$个月,第$i$月有$a_i$天,现在要选择一个长度为x的假期, 如果某天是某月的第$i$天,那么他的价值就是$i$,求价值最大的假期。 题解 假期的最后一天一定是某个月的结尾,直接枚举。 PS: 我想的是假期的第一天或者最后一天一 阅读全文
posted @ 2020-05-28 10:30 Valk3 阅读(117) 评论(0) 推荐(0)
摘要:Hills 题意 有n个土堆,第$i$个土堆高为$a[i]$,现在要在土堆上面建造房子,只有当$a_i>a_ and a_i >a _{i+1}$, 才可以把房子建到第$i$个土堆上,有一台推土机每小时可以推掉一个土堆一米,对于所有可能的$k$, 输出建造至少$k$座房子需要最少的时间。 题解 参考 阅读全文
posted @ 2020-05-27 10:52 Valk3 阅读(96) 评论(0) 推荐(0)
摘要:C. Vladik and Memorable Trip 题意 火车上有n个人,$a_i$表示第$i$个人要去的地方,可以画若干个不相交的线段, 线段不一定覆盖所有的人,如果$x$在某个线段上,那么所有的$x$都要在这个 线段上,一个线段的价值为出现在这个线段上不同数字的异或和,列车的 价值为所有线 阅读全文
posted @ 2020-05-27 10:30 Valk3 阅读(144) 评论(0) 推荐(0)
摘要:D. Phoenix and Science 题意 开始有一个质量为1的细菌,每天你可以控制任意数量的细菌分裂,一个质量为$m$的细菌分裂为两个质量为$m/2$的细菌, 每天晚上,所有细菌的质量会增加1,问最少需要多少天可以使得细菌的质量和为n, 思路 每天质量增加的大小为 细菌的个数,现在要构造出 阅读全文
posted @ 2020-05-26 22:23 Valk3 阅读(130) 评论(0) 推荐(0)
摘要:C. Phoenix and Distribution 题意 给出一个字符串$s$,现在要把所有字符分到k个字符串中(\(a_1,a_2,a_3...a_k\)), 输出$min(max(a_1,a_2...a_k))$。$a_i$不能为空 思路 首先对字符数组排个序,然后依次为$a_1,a_2,a 阅读全文
posted @ 2020-05-26 22:10 Valk3 阅读(85) 评论(0) 推荐(0)
摘要:B. Phoenix and Beauty 题意 给出一个长度为n的整数数组$a$,\(a[i]\leq n\),以及数字k,现在你可以向数组任意一个位置, 插入数字1-n,使得数组中长度为k的连续子数组和都相等,如果可以输出最后的数组,否 则输出-1。 思路 只需要把整个数组变成一个循环节长度为k 阅读全文
posted @ 2020-05-26 21:56 Valk3 阅读(88) 评论(0) 推荐(0)
摘要:Flood Fill 题意 有n个方块,每个方块都有一个颜色,现在玩一个游戏,开始时选择一个方块作为起点, 接下来每个回合都可以把起始点所在连通块变成任意一个颜色,问最少需要多少次,使 得所有方块颜色相同? 题解 对于区间$[l,r]$最后肯定是变成$l$或者$r$的颜色, $dp[l][r][0/ 阅读全文
posted @ 2020-05-26 16:30 Valk3 阅读(145) 评论(0) 推荐(0)
摘要:"E. Porcelain" 题意 有n个架子,每个架子从左到右摆放着瓷器,每个瓷器都有对应的价值。 现在公主发飙了,发出了m声尖叫,每次尖叫意味着会有一个瓷器被摔了。 瓷器每次只能拿某个架子上最左边或者最右边的一个,问损失的最大价值为多少? 思路 很容易想到$dp[i][j]$表示前i个架子上,摔 阅读全文
posted @ 2020-05-23 18:37 Valk3 阅读(109) 评论(0) 推荐(0)
摘要:"C. The Values You Can Make" 题意 给出n,k,以及n个数字,选取若干个数字组成k,在这若干个数字中选择一个子集, 问这个子集的和,可能的值有多少个。 题解 刚开始写的是01背包向前递推,然后写凉了。 是01背包的变形。 $dp[i][j][k]$表示在前i个数字中选取若 阅读全文
posted @ 2020-05-23 18:24 Valk3 阅读(111) 评论(0) 推荐(0)
摘要:"B. Greenhouse Effect" 题意 给出$n,m$,n个整数和浮点数,可以随意移动整数的位置。 问最少移动多少次使得整数为非递减的? 思路 排序,求最长公共子序列就,输出$n 最长公共子序列长度$ 代码 阅读全文
posted @ 2020-05-22 20:54 Valk3 阅读(137) 评论(0) 推荐(0)
摘要:"C. Hilbert's Hotel" 题意 给出一个长度为n,下标从0开始的数组$a$,现在对于所有的整数做一个操作,数字$i i+a[i \% n]$,问是否有多个数字变成了同一个数字? 题解 对数字进行分组: [0,n,2n,3n,4n.....] [1,n+1,2n+1,3n+1,4n+1 阅读全文
posted @ 2020-05-22 20:22 Valk3 阅读(119) 评论(0) 推荐(0)
摘要:"B.Zuma" 题意 给出一个长度为n的整数数组,每次可以去掉一个连续的回文子序列。 剩下的会靠拢,问最少几次可以去完。 题解 经典区间DP。 $dp[i][j]$表示把区间$[i,j]$消除完的最小值 转移方程: 代码 阅读全文
posted @ 2020-05-21 11:00 Valk3 阅读(122) 评论(0) 推荐(0)
摘要:"【模板】三分法" 题意 给出一个N次函数,保证在范围$[l,r]$内存在一点$x$,使得$[l,x]$上单调增, 在$[x,r]$单调减,求$x$的值。 思路 三分模板 代码 阅读全文
posted @ 2020-05-20 19:10 Valk3 阅读(167) 评论(0) 推荐(0)
摘要:"E.Restorer Distance" 题意 给出n相邻的个砖堆,有三种操作: 1. 为一个砖堆添加一块砖,花费为A 2. 从一个砖堆拿走一块砖,花费为R 3. 从一个砖块上拿走一块砖放到另一个砖块上,花费为M 问将左右砖块的高度统一为一个值,最少花费为多少? 思路 首先$M=min(M,A+R 阅读全文
posted @ 2020-05-19 21:24 Valk3 阅读(181) 评论(0) 推荐(0)
摘要:"Count Triangles" 题意 给出$A,B,C,D$,保证$A\leq B\leq C \leq D$, 有多少个三角形,三条边的长度满足$A\leq x \leq B \leq y \leq C \leq z\leq D$ 思路 之前有一次比赛是随便输出一个满足的三角形,这次直接问个数 阅读全文
posted @ 2020-05-19 21:16 Valk3 阅读(124) 评论(0) 推荐(0)
摘要:"Sequence with Digits" 题意 $a_{n+1}=a_n+minDigit(a_n) \times maxDigit(a_n)$ 给出$a_1$,和$k$,求$a_k$。 思路 $k$的范围是$10^{18}$,肯定不会是暴力。 只要$minDigig(a_i)==0$,就可以直 阅读全文
posted @ 2020-05-19 21:04 Valk3 阅读(166) 评论(0) 推荐(0)
摘要:后缀数组题目 "入门博客" 模板题 输出sa[i] "P3809 【模板】后缀排序" 字符串的最小表示 "P4051 [JSOI2007]字符加密" 将字符串s复制为ss,做后缀数组。 取首尾字符求字典序最小 "P2870 [USACO07DEC]Best Cow Line G" 题意 给出一个字符 阅读全文
posted @ 2020-05-19 08:59 Valk3 阅读(201) 评论(0) 推荐(1)
摘要:"转载自OI wiki" 后缀数组相关定义 :表示按照字典序排序后,第i名后缀开头下标 :表示后缀i的排名 :以下标i为开头的后缀 暴力求法 一切都从暴力开始,哈哈哈哈 我们把n个后缀sort一遍,复杂度是O(n2logn)。 倍增优化 使用倍增的思想进行优化。 1. 按照每个后缀的前1个字母排序。 阅读全文
posted @ 2020-05-18 19:08 Valk3 阅读(129) 评论(0) 推荐(0)
摘要:"Common Substrings" 题意 给出两个字符串,求他俩长度 =k的公共子串的数量。 思路 $n^2$ 的思路比较容易想到。 我们把两个字符串用一个没有出现过的字符隔开拼接起来,做后缀数组。 那么公共子串的数量,就是A串的后缀和B串的后缀之间的所有最长公共前缀和。 统计时,遍历$heig 阅读全文
posted @ 2020-05-18 17:09 Valk3 阅读(152) 评论(0) 推荐(0)
摘要:"【美团杯2020】查查查乐乐" 题意 给出t个包含字符,‘x’,‘l’的字符串。 现在把x修改为l,把l修改为x,现在要保证不包含“xxxll”的子序列,问最少需要修改多少次? 题解 $dp[i][j]$表示在前i个字符串中,出现的最长的xxxll的子序列的长度。 比如:x是1,xx是2,xxx是 阅读全文
posted @ 2020-05-18 09:53 Valk3 阅读(187) 评论(0) 推荐(0)
摘要:"Orac and Medians" 题意 给出一个长度为n的数组a,以及数字k,在一次操作中可以选择一个区间$[l,r]$, 把这个区间里所有的数字变成其中位数,数组a的中位数是排好序之后的$a[\frac{n+1}{2}]$。 问是否可以通过有限次操作,把整个区间变成k 思路 "中文题解" 我的 阅读全文
posted @ 2020-05-14 18:32 Valk3 阅读(109) 评论(0) 推荐(0)
摘要:"Orac and LCM" 题意 有一个数组s,相关定义如下 1. $gcd(s)$是最大的一个整数x,s中的所有数字都可以整除x 2. $lcm(s)$是最小的一个整数x,x可以整除s中的所有数字 给出一个有n个数字的数组a,根据数组a,得到另一个数组$t=\{lcm(a_i,a_j)|i us 阅读全文
posted @ 2020-05-14 17:48 Valk3 阅读(100) 评论(0) 推荐(0)
摘要:"Orac and Models" 题意 给出包含n个数字的数组$s$,现在让你选出最长的一个子序列, $i_j$表示子序列中第j个数字在s中的下标,要满足$s_{i_j} using namespace std; const int N=2e5+10; typedef long long ll; 阅读全文
posted @ 2020-05-14 16:42 Valk3 阅读(111) 评论(0) 推荐(0)
摘要:" Long Long Message " 题意 给出两个字符串,让找出最长的公共子串 思路 把两个字符串合起来,做最长不重叠子串即可。 "[poj 1743] Musical Theme 后缀数组 or hash" 数组开二倍 代码 阅读全文
posted @ 2020-05-13 21:35 Valk3 阅读(120) 评论(0) 推荐(0)
摘要:"POJ 3693 " 题意 "SPOJ REPEATS " 的进阶版,在这题的基础上输出字典序最小的重复字串。 思路 跟上题一样,先求出最长的重复次数,在求的过程中顺便纪录最多次数可能的长度。 因为sa数组是按照字典序排好的,所以我们顺序遍历sa数组,找到第一个符合的输出即可。 why 字符串结尾 阅读全文
posted @ 2020-05-13 17:07 Valk3 阅读(154) 评论(0) 推荐(0)
摘要:字体颜色如何 字体颜色 "SPOJ REPEATS " 题意 给出一个字符串,求重复次数最多的连续重复子串。 题解 引自论文 "后缀数组——处理字符串的有力工具" 。 "解释参考博客" “S肯定包括了字符r[0], r[L], r[L 2],r[L 3], ……中的某相邻的两个” 由于当前S是有两个 阅读全文
posted @ 2020-05-13 09:46 Valk3 阅读(190) 评论(0) 推荐(0)
摘要:Power Strings 题意 给出一个字符串s,求s最多由几个相同的字符串重复而成(最小循环节的重复次数) 思路 之前学习KMP的时候做过。 我的思路是:枚举字符串的长度,对于当前长度k,判断$lcp(1,k+1)>=k$,\(lcp(k+1,2k+1)>=k\),\(lcp(3k+1,4k+1 阅读全文
posted @ 2020-05-12 18:55 Valk3 阅读(192) 评论(0) 推荐(0)
摘要:"New Distinct Substrings" 题意 给出T个字符串,问每个字符串有多少个不同的子串。 思路 字符串所有子串,可以看做由所有后缀的前缀组成。 按照后缀排序,遍历后缀,每次新增的前缀就是除了 与上一个后缀的所有公共前缀 之外的前缀。 答案就是用总数 重复的 即$\frac{n(n+ 阅读全文
posted @ 2020-05-12 18:31 Valk3 阅读(131) 评论(0) 推荐(0)
摘要:" Milk Patterns " 题意 给出n个数字,以及一个k,求至少出现k次的最长子序列的长度 思路 和poj 1743思路差不多,二分长度,把后缀分成若干组,每组任意后缀公共前缀都 =当前二分的长度。统计是否有某个组后缀数量 =k,如果有当前长度就可以。 代码 阅读全文
posted @ 2020-05-12 08:47 Valk3 阅读(135) 评论(0) 推荐(0)
摘要:"Musical Theme" 题意 给出n个1 88组成的音符,让找出一个最长的连续子序列,满足以下条件: 1. 长度大于5 2. 不重叠的出现两次(这里的出现可以经过变调,即这个序列的每个数字全都加上一个整数x) 思路 我们处理一下这个所谓的“变调”:令$a[i]=a[i+1] a[i]$,这样 阅读全文
posted @ 2020-05-11 23:04 Valk3 阅读(167) 评论(0) 推荐(0)
摘要:[USACO07DEC]Best Cow Line G [USACO07DEC]Best Cow Line G 小声哔哔:字符串hash牛逼 题意 给出一个字符串,每次可以从字符串的首尾取出一个字符,放到队列的尾部,求可以得到的最小的字典序是多少? 思路1 此时字符串首尾的下标分别为l,r。 如果s 阅读全文
posted @ 2020-05-11 10:11 Valk3 阅读(207) 评论(0) 推荐(0)
摘要:D. Nastya and Scoreboard 题意 一块电子屏幕上有n个数字。 每个数字是通过这样7个线段显示的,现在你不小心打坏了k个线段,给出打坏之后的n个数字的显示方式,问之前的屏幕表示的最大数字是多少? 思路 看数据范围感觉就是DP。 我们把n个数字先倒过来,要尽可能的让后面的数字大。 阅读全文
posted @ 2020-05-07 16:30 Valk3 阅读(146) 评论(0) 推荐(0)
摘要:"C. Nastya and Strange Generator" 题意 有一个随机全排列生成器,给出你一个全排列,让判断是否可以通过这个生成器产生。 生成器工作方式: 第i步为数字i寻找位置pos。 首先pos是一个空位置,定义每个空位置的价值为左边连续有数字的位置数,会为数字i在价值最大的一个或 阅读全文
posted @ 2020-05-07 16:08 Valk3 阅读(296) 评论(0) 推荐(0)
摘要:F. Fence 这个刷Fence的问题看到好几个了。。。 题意 有一个栅栏,由n块宽为1cm的木板组成,第i块木板高为hi,要给他们刷上油漆,有一桶红色的可以刷a平方厘米的油漆,一桶绿色的可以刷b平方厘米的油漆。每块木板只能刷一种油漆。 现在要求出栅栏的不吸引值最小,定义不吸引值:相邻的木板不同颜 阅读全文
posted @ 2020-05-06 16:36 Valk3 阅读(197) 评论(0) 推荐(0)
摘要:C. Logo Turtle 题意 有一个海龟在一个x轴的0点,给出一个由'F','T'组成的字符序列。 海龟要按照这个序列进行行动,如果第i个字符为'F',表示沿当前方向走,'T'表示转身。 现在你必须改变n个操作,把'F'变成'T',或者把'T'变成'F',同一个操作可以改变多次,问终点距离起点 阅读全文
posted @ 2020-05-05 18:58 Valk3 阅读(140) 评论(0) 推荐(0)
摘要:D. Connected Components 题意 现在有n个点,m条编号为1-m的无向边,给出k个询问,每个询问给出区间[l,r],让输出删除标号为l-r的边后还有几个连通块? 思路 去除编号为[l,r]的边后,只剩下了[1,l-1]&&[r+1,m]两部分。 我们维护一个前缀以及后缀并查集,询 阅读全文
posted @ 2020-05-05 15:51 Valk3 阅读(151) 评论(0) 推荐(0)
摘要:"Spy Syndrome 2" 题意 现在对某个英文句子,进行加密: 1. 把所有的字母变成小写字母 2. 把所有的单词反过来 3. 去掉单词之间的空格 比如: 加密为 现在给出加密后的句子,以及m个单词(每个单词可以重复使用),输出原来的句子。 思路 使用 表示第i个字母作为句子最后一个单词的开 阅读全文
posted @ 2020-05-05 10:41 Valk3 阅读(118) 评论(0) 推荐(0)
摘要:"Substring and Subsequence" 题意 给出两个字符串s,t,求出有多少对s的子串和t的子序列相等。 思路 类似于最长公共子序列的dp数组。 表示s中以i为结尾的子串和t中前j个的子序列相等的个数。 转移的时候 。 如果 那么 ,1是 自身作为子串的情况. 最后统计 的和 代码 阅读全文
posted @ 2020-05-05 08:12 Valk3 阅读(165) 评论(0) 推荐(0)