因为是复活赛,所以题目相对比较简单
难度还是有的
T1
题意:给你一个全是大写字母的字符串,问能否先找到子串AC,将其改成BB后,再找到子串CA,将其改成BB?能输出YES,否则输出NO
题目很简单,但是我竟然没有AC
因为我没有考虑这种情况:ACAAC。此情况为YES
所以不能直接扫AC,直接将第一个改成BB
方法很多,就不说了
T2
题意:给一个n∗n矩阵的最终状态,若ai,j=0则表示这个地方没有被填充过颜色,否则就被填充过。现在初始状态为全零矩阵,每一次操作都只能将一个子矩阵覆盖成之前没有用过的颜色。问第一次能涂多少种颜色使得最后达到最终状态?
n≤10
暴力即可,只要先求出每一种颜色的矩形范围即可
T3
题意:给定一个n∗m矩阵,每一个点的权值为其到其他所有点距离的最大值(比如(x,y)到(x′,y′),dis=|x−x′|+|y−y′|+ax′,y′)。输出每个点的权值。
n,m≤1000
O((nm)2)的算法是十分明显的
所以我们现在就要考虑怎么做到O(nm)
我们只要使ai,j±i±j最大(±的取值需要看在那个方向,因为这是绝对值)
预处理出每一个点到四个方向的最大值,然后计算即可
T4
题意:一个n∗m的矩阵,告诉你每一个点在某一时刻会消失,问每一时刻有多少个连通块(时刻必定是一个nm的排列)
时光倒流,一个一个点加入即可
T5
题意:一个数列x1,x2,…xn,m (xi≤m),
问有多少种序列,使得∑aixi=1 (ai∈N)(xi自己求)
显然,要使得最后的和为1,就要使得G=gcd(x1,x2,…xn,m)=1
n,m≤105
考虑使用容斥原理
答案即为总方案数减去最大公约数不为1的方案数
显然,G|m。假设m=pt11pt22…ptnk
那么,答案的式子即为
是不是和欧拉函数φ(n)的式子很像?
原式即为
所以只要对m进行质因数分解即可
然后直接快速幂
时间复杂度
总结
要多运用数学知识……比如T5我明白应该是G=1,但是不会写啊
还是要多加练习的

898

被折叠的 条评论
为什么被折叠?



