Pre
所以Jerry童鞋你又把题给都错啦?! —— 李植武
难受啊今天T1在调试了3个小时的T2正解失败之后心态爆炸,最后连T1题面都看错了导致最后的暴力都过不了阳样例……
T1
一上来就觉得T1是一道Dp,但是DAG上的Dp还不是很熟练,所以第一眼看这个题的时候就感觉有点慌张【所以首先心态就是错误的,抱着一种我没有做过我很慌的心态】,最后第一次就没有读懂题意,慌慌张张看下一题去了……
首先可以看出这道题就是一道多源多汇的最长路问题,数据范围告诉我们N^2枚举会爆炸,所以考虑如何O(N)搞搞……【当然题首先要读对】
当然是记忆化搜索转移Dp状态啦!但是Dp状态如何定义的呢?分析一下题意【很多Dp状态的定义都是根据题目本身所需要来定义的,而有些靠模型的积累】,首先状态必须要记录当前节点是什么,我们还需要知道哪些信息才能转移呢?
1、已经走过的最长路;
2、走一条单源汇最长路花的最小时间;
【Dp状态的定义如果有3个元素需要被记录,那么其中两个作为数组的下标,另一个作为Dp的值转移】
这道题可以定义Dp(u,j)=x表示从某个终点到u这个点,已经走过了j个景点所需要花费的最短时间为x,转移就很好转移了,采用刷表法,不赘述。
边界条件就是当Dfs到某个点的时候,如果它是出口,那么其走一个点花费是走出该点所花费的排队的时间。
统计答案的时候就是对于已经得到的Dp值得每一个入口,得到从大到小枚举Dp状态中的j,Check算上进入入口的时间之后其最小时间是否满足要求,满足就取最大值作为答案……
T2
大力推式子,二分最后一个合法点,NlogN复杂度由于我没有草稿纸所以倒在了推式子的第二步上真难受啊,没有A掉这个水题……
T3
只听懂了思路,但是表示不会写程序下一个谢谢……