ZR普转提2
A
谢谢刁神教我A题
刚开始读错题了,以为是一个不可做的数位DP,然后就暴力滚粗
直到问了问刁神,发现自己题意是错的
然后成了比较简单的题目
直接暴力枚举每一位填什么,剩下的位数的数字都要相同
枚举完之后暴力check,除以去掉点缀0的不合法情况,以及
1e16有17位数字
代码就不放了
B
果然听别人的思路再考一遍还是不会
有点类似于AB班的那一道括号匹配的题目
我们想(A,B,C)出现的次数相同
也就是把相同的一段扣去
A,B,C出现次数的差是不变的
这就启示我们去维护(A-B,B-C)的值
如果当前(A-B,B-C)与前面的一个相同,那么
这两个之间的串是合法的
我们就开一个map维护一下即可
C
首先,要知道一个性质,被(11)整除的数的奇数位之和减去偶数位之和是(11)的倍数
我们接着发现,不可能存在两个(0)相邻的情况
因为
[ecause 99x equiv 0 pmod{11}\
herefore 100x - x equiv 0 pmod{11}\
herefore xequiv 100x pmod{11}
]
所以发现,在模100的意义下,(x)和100(x)没有区别,所以不可能存在两个(0)相邻
我们就设(f_{i,j,k})表示前(i)个数,选了(j)个数当奇数,奇数减去偶数在模意义下的差为(x)能否可行
转移就转移到
(f_{i + 1,j,(k - a_{i + 1} + 11 ) \% 11})和(f_{i + 1,j,(k + a_{i + 1}) \% 11})即可
D
一道贪心题
首先能够发现,魔法肯定是先用比较优
想一下
当怪的数量大于二时一定使用AOE比较赚,因为你虽然可能使用重击然后少吃一点伤害,但是会导致多大一轮,多打一轮的代价至少是1,所以不赚
如果只剩(2)个怪就使用重击
如果(1)滴血就AOE
然后统计剩下的贡献就好了