摘要:
题意:有一长度为$n$的数组,求最多的区间和相同的不相交的区间的个数. 题解:我们可以先求一个前缀和,然后第一层循环遍历区间的右端点,第二层循环枚举左端点,用前缀和来$O(1)$求出区间和,$pos$表示当前区间和为$cur$的最右端点,如果我们枚举的左端点$j$比$pos[cur]$所在的最右端点 阅读全文
摘要:
题意:有一个HP为$h$的大怪兽,你需要轮流进行$i$次操作.每次可以使$h+=d_i$($d_i$有正有负),当第$n$次操作完成后,再从第一次开始,问能否使得怪兽的HP变为$0$或更低,如果可以,输出操作次数,否则输出$-1$. 题解:我们首先求$d$的前缀和,如果在求的过程中就能使怪兽死掉的话 阅读全文
摘要:
题意:在$x$轴上,你刚开始在$0$的位置,第$i$次操作需要走$A_1,...,A_i$个单位,如果$A_i$为正向右走,否则向左走,求你所能走到的最大坐标. 题解:我们一步一步来看: 第一次走:\(A_1\). 第二次走:\(A_1,A_2\). . . . 第$n$次走:\(A_1,A_2,. 阅读全文
摘要:
题意:有两个字符串,两个字符串中的相同字符可以相互匹配,$?$可以和任意字符匹配,输出最大匹配的字符数量和它们分别两个字符串中的位置. 题解:很容易贪心,我们先遍历第一个字符串,然后在第二个字符串中去找与当前位置相同的字符,这个过程我们可以先将每个字符的位置存下来然后再操作,遍历完后再遍历字符和问号 阅读全文
摘要:
题意:有一长度为$n$的序列$p$,现在给你$q_i=p_{i+1}-q_i \ (1\le i\le n)\(,问你是否能还原出原序列,如果能救输出原序列,否则输出\)-1$. 题解:由:\(q_i=p_{i+1}-p_i\),我们对其求前缀和可得:\(s_i=p_{i+1}-p_1\),然后再求 阅读全文
摘要:
题意:有$n$个人,每个人的能力值是$a_i$,现在你想将这些人分成$k$组(没必要全选),但是每组中最高水平和最低水平的人的能力差值必须$\le 5$,问最多能选多少人. 题解:想了一会发现纯贪心写不了,必须要用dp来求解,先排序,我们记$dp[i,j]$,表示前$i$个人分成$j$组选的最多的人 阅读全文