目录

A - String Similarity

问题描述

给定一个长度为$2n-1$的01串$s$,定义一个串和另一个串相似当且仅当它们至少有一位相同,构造一个和$s_{1 \ldots n}, s_{2 \ldots n+1} \ldots s_{n \ldots 2n-1}$都相似的串

数据范围

多组数据,$1 \le T \le 1000$,$n \le 50$

解题思路

直接把$s$的第1,3,5…位输出即可

B - RPG Protagonist

问题描述

你和一个随从去收集武器,一共有$cnt_s$把剑$cnt_w$把斧子,每把剑重$s$,斧子重$w$,你和随从分别可以拿重量为$p$和$f$的东西,问最多拿几把武器

数据范围

多组数据,$1 \le T \le 10^4$,$1 \le s,w,p,f \le 10^9$,$1 \le cnt_s,cnt_w \le 2 \times 10^5$

解题思路

直接枚举你拿几把剑然后贪心地取即可,细节稍微有点繁琐

C - Binary String Reconstruction

问题描述

给定一个01串$w$,通过$w$构造$s$的方法是,给定$x$,如果$w_{i+x}$和$w_{i-x}$至少有一个是1,那么$s_i$是1,否则$s_i$是0,现在给出$s$和$x$,构造一个$w$,或者判断没有解

数据范围

多组数据,$1 \le T \le 1000$,$2 \le |s| \le 10^5$

解题思路

先按照$s$把$w$中一定是0的地方确定出来,然后其它都填1,如果按照这个$w$生成出来的$s$与原来不同则无解

D - Zigzags

问题描述

给定$n$个数$a_1,a_2 \ldots a_n$,问有几个四元组$(i,j,k,l)$满足$i < j < k < l$且$a_i = a_k,a_j = a_l$

数据范围

多组数据,$1 \le T \le 100$,$4 \le a_i,n \le 3000$

解题思路

先$O(n^2)$预处理出每个位置往后某个数有多少,然后枚举$i$和$k$,每次$k$移动的时候会变两个数,直接计算合法的对数,如果此时$a_i=a_k$就把数加进答案

E - Clear the Multiset

问题描述

给出$n$个数,每次可以把一个数任意减小但是不能减到负数,或者把一个所有数大于零的区间全部减一,问最少几次可以全变成零

数据范围

$1 \le n \le 5000$

解题思路

对于一个非0区间,找到最小值看这个值和区间长度,选择最优的方式减,然后再重复这个过程递归下去,如果最小值大于等于区间长度就直接减区间长度次直接回溯即可

G - Mercenaries

问题描述

n个元素,从中选若干个。第i个元素可以被选,当且仅当最终选出的元素数量在$[l_i,r_i]$。另有m组数不能被同时选出。问有多少种选法。

数据范围

$1\le n \le 3\cdot 10^5,0\le m\le 20$

解题思路

运用容斥原理。若两个点不能被同时选出,则两个点之间连接一条边。枚举$2^m$种情况表示每条边上的两个点是否全被选中。若有奇数条边,则减去结果,偶数条边则加上结果。