安徽大学第四届ACM校赛题解

转载请注明出处,谢谢 http://blog.csdn.net/ACM_cxlove?viewmode=contents by---cxlove

仅仅是CXLOVE弱菜的个人见解,并非官方题解,有错误请指出。

http://icpc.ahu.edu.cn 558-574

网络赛

A:窃取任务

数据结构堆栈。如果当前位置的塔比栈顶的要低,意味着当前塔会把信息传到栈顶的塔,则次数+1,而当前塔入栈(比前一个低,还有利用价值),如果比栈顶塔要高,意味着之后的塔不可能把信息传到栈顶的塔,信息会被当前塔拦截,则栈顶弹出,直至空栈或者情况1。那么两个方向扫描一遍即可。b

B:丢失的数字

水题,排序后扫描一遍,相邻差是否为1即可。

C:取石子

博弈DP。能通过取一次石子到达必败态,则当前为必胜态,能通过取一次石子到达必胜态,则当前为必败态,递归。

D:俄罗斯长条塔

DP,最长递增子序列。当时CXLOVE竟然建图+最长路,弱爆了。貌似有大神直接搜索过了。

E:丢失的文字

水题,纸上画画便知。O(n)求出相同前缀长度和相同后缀长度即可。

F:绩点换算

不解释

G:乘的更快

快速幂乘,注意中间的乘法用32位会溢出。

H:鼠标移动

水题


现场赛:

A:切水果

注意各种细节就行了,看清题意。

B:三次幂分解

转换成三进制,0的情况不解释,1的情况就是加上3的幂,2的情况得想想,2*3^n,可以表示为3^(n+1)-3^n,即高位+1,当前位为-1,3的情况便是当前位置0,高位+1。复杂度O(log3n)?

C:方和圆

比赛的时候各种悲剧。注意精度问题,譬如pi=acos(-1)即方便,而且保证精度,double的输出为%f,各种坑

D:命令提示

暴力?

E:凯旋

递推式无压力,但是范围很大,递推必然TLE,显然矩阵快速幂乘。像CXLOVE这样的弱菜想不到矩阵快速幂,就只有计算通项,结果悲剧的算错了,解K阶常系数齐次方程后,快速幂乘。

F:爱就大声说出来

O(n^3)会TLE,貌似有大神,优化到800ms+过的,O(n^2),O(n)无压力,要使最后的结果最大,显然头尾可确定。

G:排地雷

状态DP。由于影响当前位置的地雷摆放的是之前最多6个位置的地雷情况,地雷情况也就是放和不放两种,2进制状态压缩,7个格子。dp[1001][1<<7],时间和空间都可以接受。dp[i][j]表示在i个位置,前7个位置的地雷状态为j(包括第i个位置)时的摆放总数。由于区间是相交的,cxlove选择使用vector存储会影响当前格子的区间,依次处理。状态DP中有许多细节应当注意,譬如说位运算的优先级,以及左移时应去除无效高位,以免溢出。

H:寻找罗恩和赫敏

水题,1/C(n,2)

你可能感兴趣的:(安徽大学第四届ACM校赛题解)