搞了很久才搞出topcoder的客户端以及各种插件和程序的写法。。
好麻烦。进入pratice 练习了一场考试。。
orz。。。一场75分钟三道题的考试。我的水平看英文题加敲代码一共花了几小时才完成 - -
罚时好可怕= =、、还有一大串没几人看得懂的数学公式计分规则、。插件生成的。各种orz
以下不全是我自己想出来的。
250分题。可以枚举几个说真话的人说谎,我是列方程然后解。。判断一下解得范围
500分题。我们可以知道如果一个人要完成任务。。他的所有任务要连续的才可以最优。。
其他的什么都好解决
主要是要解决对于任意一段任务,每个任务期望等待时间。。
这个我们对于一个任务任意一种排列。有一个相反的序列,就是把所有元素反过来。。
每个排列都有个相反的排列。。最后的期望时间就是在总时间的最中间..
900分题。前几天考试考到过。牛逼题目啊。。在此题中,我们到达一个点。如果正向的思路的dp是需要两个值,
一个是到达这个点的最少时间和之前的最大时间。
。我在考试时候想的是二分时间,然后状压dp。因为这样很明显tle-。所以作罢。。
题解的方法很巧妙的反过来做。我们用f[l][r][opt][0]表示在这段区间内。选完opt中剩下的所花费最少时间。
我们的目标状态是f[k][k][i][1<<(i-1][0]。。这样我们可以不用考虑路程。因为最少时间直接从路程加上去。。
从而得到需要的值
这道题让我知道了一种新的思路。。。
以后做到这种记录两个值的dp题目的时候,如果二分不行。需用这种逆向的思路想一下。