NEERC Southern Subregional 2011
NEERC Southern Subregional 2011
A - Bonnie and Clyde
solution
双指针搞搞就好。
时间复杂度:\(O(n)\)
B - Building Foundation
题目描述:给定\(n\)条线段(水平或垂直),问能构成多少个矩形(只要矩形的四条边都被线段覆盖即可),水平线段不相交,垂直线段不相交。
solution
预处理出每条垂直的线段与哪些水平的线段相交,然后枚举两条垂直的线段,数一下有多少公共的水平线段\(s\),答案增加\(C_s^2\)。
时间复杂度:\(O(n^3)\)
C - Dice Tower
题目描述:用骰子搭成一个\(1 \times 1 \times h\)的长方体,满足表面的数字的和为\(n\),输出最小的\(h\)或无解。
solution
注意一个骰子和两个骰子之间的状态是无解,其它的特殊情况都比较好想。
时间复杂度:\(O(1)\)
E - Berland Chess
题目描述:给定一个\(n \times m\)的棋盘,棋盘上有一个白色的国王,还有若干个黑色的骑士、主教、城堡(总共不超过15个),现在要移动白色国王,问他安全情况下最少多少步吃掉所有黑色棋子(黑色棋子不动)。
solution
状压,对黑色棋子进行编号,用\((sett, x, y)\)表示当前还剩的棋子集合以及白色国王的坐标,然后bfs求解。可以先预处理出当棋子集合为\(sett\)时,那些格子是安全的。
时间复杂度:\(O(8 \cdot 2^{15}n^2)\)
F - Divisibility
题目描述:给定一个只有小写字母并且字母种类不超过\(10\)种,长度不超过\(14\)的字符串,给每一个字母分配一个\(0\)~\(9\)的数字(不同字母数字不同),那么所给的字符串对应一个没有前导零的数字,求得到的数字的公共约数。
solution
原问题等价于求所有数字的最大公约数+求一个数字的所有约数。
先考虑字母种类不超过\(9\)种的情况,那么对于某一种字母,单独改变这一种字母的分配数字,得到的数字作差,这些数字都是\(num\)的倍数,其中\(num\)是指这种字母的位置取\(1\),其它位置取\(0\)对应的数字。对于每一种字母求出对应的\(num\),求\(num\)的最大公约数。
考虑字母种类数不超过\(10\)种的情况,取其中两种字母,其中一种填\(1\),另一种填\(0\),其它字母不变,交换两种字母的分配数字,作差,得到数字为两种字母对应的\(num\)作差,求出所有二元组的最大公约数。
由于上面得到的最大公约数是作差得到的,所以还要随便求出一种可行的分配方案对应的数字,再求一次最大公约数,才是真正的最大公约数。
由于数字比较大,所以要把数字分解质因数后,再穷举所有约数。
时间复杂度:\(O(能过)\)
K - Emoticons
solution
模拟,按照题目要求的做即可。
时间复杂度:\(O(n)\)