A. Magic Mirror
题意
签到题
1 |
|
B. Mathematical Curse
题意
有一个包含n个非零整数的序列和一个含有m个字符的字符串s,字符只可能是 ‘+’, ‘-‘, ‘*’, ‘/‘ 四种,有一个初始值 k
现要从序列中取出一个含有m个数的子序列{a1, a2, .. , am},求 k 和 m 个数进行运算后的最大值
要按照原序列的顺序进行运算
如:
4 4 5
1 2 3 4
+-*/
ans = ((((5 + 1) - 2) * 3) / 4)
思路
solve by lx
1 |
|
G. Give Candies
题意
1 | 给n个小孩发糖果,总共有n个糖果,小孩按顺序排好,把糖果分发,不必每个小孩都有糖果,但是如果不是每个孩子都有糖果,那么只能是在后面的小孩没有糖果。问有多少种方案。 |
题解
就是往n个东西中间插任意个板子,所以最多能插n - 1个,所以答案为2^(n - 1) % p。但是n最大有1e5位数,所以要用小费马定理化简。
假如p是质数,且gcd(a,p)=1,那么
a^(p-1) ≡1(mod p)
我们可以利用费马小定理来简化幂模运算:由于a^(p-1)≡a^0≡1(mod p),所以a^x(mod p)有循环节,长度为p-1,所以a^x≡a^(x%(p-1))(mod p)
1 |
|
H. String and Times
题意
求子串出现次数在k1=<num<=k2;
题解
https://blog.csdn.net/calabash_boy/article/details/77959704
抄了葫芦娃的这篇博客直接1A 太强了
1 | 恰好k次 = 至少k次 - 至少k+1次。答案转化为求至少出现k次的子串个数统计。构造好后缀数组以及很重要的Height数组之后。用一个k-1的窗子去滑动。窗子里边放着k-1个Height值(Height[ i+1 ],Height[ i+2 ],……,Height[ i+k ]),这样k-1个值就联系了k个后缀(SA[ i ],SA[ i+1 ],……,SA[ i+k ]),显然要求出这k-1个Height值的最小值,这个最小值就是这k个后缀的极大公共前缀了,假设是x,那么长度为1..x的前缀都在这个窗子里面出现了k次,也就是说他们都是符合答案的子串了。但是要考虑前边已经重复统计过了1..x中的一部分,考虑前一个窗子(Height[ i ],Height[ i+1 ],……,Height[ i+k-1 ]),讨论前面这个窗子的最小值y:1、y<x,那么说明上一个窗子的最小值一定是Height[ i ] ,因此上一个窗子统计了1..Height[ i ]部分,这一次需要统计Height[ i ]..x部分。2、y>x,那么就是说明前面窗子的极大公共前缀长度 比 这一个窗子的 极大公共前缀长,而这两个窗子有(i+1,i+2,,……,i+k-1)这k-2个元素是一样的。因此考虑所有的k个值(Height[ i ],Height[ i+1 ],……,Height[ i+k-1 ],Height[ i+k ]),1..x必然是他们的公共前缀,那么由于y>x,前面一个窗子已经统计完了1..y的部分,1..x的部分被计算在前一个窗子里面了,这一次不需要计算,为了和上边一个式子统一起来,我们考虑Height[ i ],显然有Height[ i ]>=y>x,进而有Height[ i ]>x。 |
1 |
|
I. Save the Room
题意
有一个abc大小的长方体,你用112大小的长方体来填充,填充过程中,不能超出abc长方体的空间。问是否可以刚好填充。
题解
因为是1×1×2大小,所以以1×1为底面填充一定可以把底面填满,那么只需要考虑高就好啦,然后发现,高是二的倍数就可以刚好填充。
1 |
|
J. Participate in E-sports
题意
让你分别判断n或(n-1)*n/2是否是完全平方数。
题解
大数开方,可以二分或者牛顿迭代
1 | import java.math.BigInteger; |
K. Transport Ship
题意
每个物品的大小为v有2^c-1个 q次询问 问你当背包容量为s的时候有多少种可行方案
题解
多重二进制背包,把每个容量变成二进制表示 比如2^3-1=8-1=7=={1,2,4};正好三次
1 |
|
L. Poor God Water
题意
有肉,鱼,巧克力三种食物,有几种禁忌,对于连续的三个食物,1.这三个食物不能都相同;2.若三种食物都有的情况,巧克力不能在中间;3.如果两边是巧克力,中间不能是肉或鱼,求方案数
题解
这题类似于AC自动机的POJ-2778-病毒串问题,把不能的禁忌当成坏的子串然后用ac自动机得出矩阵后进行矩阵快速幂
不过一开始ac自动机过不去,就得出十组数据搞进BM里面了后面矩阵优化一下直接300ms过去了
1 |
|
1 |
|