摘要: 题目链接:Multi-Subject Competition 题意:给定n名选手,每名选手都有唯一选择的科目si和对应的能力水平。并且给定科目数量为m。求选定若干个科目,并且每个科目参与选手数量相同的情况下的最大能力水平。 题解:每位选手扔到对应的科目里面,从1-m遍历科目,能力值排序下,维护下能力 阅读全文
posted @ 2018-11-29 17:40 pavtlly 阅读(792) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Vova and Trophies 题意:给定长度为n的字符串s,字符串中只有G和S,只允许最多一次操作:任意位置的两个字符互换。求连续G的最长长度。 题解:维护pre和pr,nxt和nx。pre和nxt像连续子段和一样维护G的个数,pr和nx维护分别前面和后面各有多少个G。 遍历每个位置 阅读全文
posted @ 2018-11-29 17:29 pavtlly 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 题目链接:区区区间间间 题意:给出长度为n的数字序列ai,定义区间(l,r)的价值为, 请你计算出。 题解:单调栈求ai左边和右边第一个比它小的位置,需要减去ai的个数为$(R_i-i+1)*(i-L_i+1)-1$。同理再用单调栈求ai左边和右边第一个比它大的位置,加上需要加上的ai个数即可。 解 阅读全文
posted @ 2018-11-22 19:37 pavtlly 阅读(447) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Feel Good 题意:给定长度为n的数字序列ai,定义某值为区间[l,r]内ai之和乘上区间[l,r]内最小的ai。求最大的该值。 题解:单调栈维护每个ai前面和后面第一个比它小的位置,对应题目中要求的值就为该区间之和乘上ai,从头往后遍历一遍。 数组: 1 #include <cst 阅读全文
posted @ 2018-11-22 16:54 pavtlly 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Sliding Window 题意:给定n长度的数字序列,求从前往后每k个数字中的最大值和最小值分别为多少。 题解:单调队列。(除去冗余状态)整个思路就是尽量删掉没用的数字,从队列尾部删掉价值不如当前的,从队列头部删掉序号不在该区间内的。 数组版: 1 #include <cstdio> 阅读全文
posted @ 2018-11-21 16:54 pavtlly 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Pictures with Kittens (hard version) 题意:给定n长度的数字序列ai,求从中选出x个满足任意k长度区间都至少有一个被选到的最大和。 题解:数据量5000,O(n^3)的DP不适用。需要加个单调队列优化。 注意每次是从$[i-k,i)$区间,选择加上ai。 阅读全文
posted @ 2018-11-20 22:15 pavtlly 阅读(457) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Pictures with Kittens (easy version) 题意:给定n长度的数字序列ai,求从中选出x个满足任意k长度区间都至少有一个被选到的最大和。 题解:$dp[i][j]$:以i为结尾选择j个数字的最大和。 $dp[i][j]=max(dp[i][j],dp[s][j 阅读全文
posted @ 2018-11-20 21:37 pavtlly 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Thematic Contests 题意:给出n道有类型的题目,每天组织一场专题比赛,该天题目数量必须是前一天的2倍,第一天的题目数量可以任意选择,求能消耗的最多题目数量。 题解:先整理成不同类型的序列,接着把对应类型题目的数量扔进vector,排序。枚举第一天题目数量,vector从当前 阅读全文
posted @ 2018-11-20 15:50 pavtlly 阅读(604) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Cutting Out 题意:给定一个n长度的数字序列s,要求得到一个k长度的数字序列t,每次从s序列中删掉完整的序列t,求出能删次数最多的那个数字序列t。 题解:数字序列s先转换成不重复的数字序列,并记录各个数字重复的次数,然后按照重复次数从大到小排序。二分最大删除次数,最后再输出对应的 阅读全文
posted @ 2018-11-20 12:22 pavtlly 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 题目链接:Playing Piano 题意:给定长度为n的序列$a_i$,要求得到同样长度的序列$b_i$。满足一下条件: if $a_i < a_{i+1}$ then $b_i < b_{i+1}$ if $a_i > a_{i+1}$ then $b_i > b_{i+1}$ if $a_i 阅读全文
posted @ 2018-11-19 20:29 pavtlly 阅读(488) 评论(0) 推荐(0) 编辑