2016.10.4
考试思路:
T1
超级水的一道题,输入时前面的加一,后面的减一,就可以了。
T2
跟之前的学霸一题很相似,也是建一个小根堆,里面放尽量大的扣分,这样没做的扣分就会相对小,然后有两种情况,一种是现在的这个时间点比要做这件事的时间小,就可以之间把现在的时间点加一,然后把扣分放进堆尾,用up维护,还有一种情况,就是现在的时间点,和要做的事的时间一样,所以这件事和前面的发生冲突,要判断和堆顶比谁大,如果比堆顶大,则把堆顶变为这件事的分,用down来维护,最后把一开始的扣分加起来的一个变量减去堆里的分,代表要减的分,再用预期得分减去这个就可以了。
T3
动态规划,f[i,j]表示走到位置为i,j的点最小的好奇度,所以动态转移方程就显而易见,f[i,j]:=a[i,j]+min(f[i-1,j]+f[i,j-1]),min表示求较小值,可是又三种特殊情况,第一种就是i=1,j=1可以直接忽略,还有i=1,就直接f[i,j]:=a[i,j]+f[i,j-1],表示只能是这一行的前面一列,因为行不能再减了,而第三种也基本相同,就是j=1时,f[i,j]:=a[i,j]+f[i-1,j],最后答案就是f[n,m]。
T4
比赛时我想到的就是枚举长,从而得出宽,然后用深搜去判断能不能满足条件,但是很不尽如人意地得到了10分。
正确思路:
T1
同上。
T2
同上。
T3
同上。
T4
主要思想和原本基本相同,只不过是从全部长的总和downto到1,去枚举宽,从而得到长,然后用深搜去判断,有些小细节,自己想想就好啦。
总结:
这次考得还不错,只是最后一题有点细节没有想到,所以比较低分,可最后还是得到了100+100+100+10=310的成绩,下次继续努力!