今天的考试好像只拿了20分,多捞哦
T2真实写错正解orz
512MB的内存限制下明明没有到256MB的,为什么256MB下就MLE了???我用了假的lemon???
T1题解是trie优化的2-sat问题,但是我并不会2-sat,就用O(2n*n)的算法水了20分,然后本来以为用指针开动态内存的情况下是不会mle的,结果。。。。
好像是我开小了orz
T2的话大致想出来了正解。
首先看数据范围,前面的30分裸搜就能过,时间复杂度是阶乘级的。既然我们想不到别的优化方法了,那么我们就想一下如何对这个搜索进行优化
从题意我们可以得知,某些状态是可以拼接到一起的:假设A和B是我们搜到的两种状态,当A和B可以合并为答案的可行路线时,当且仅当A的起点是B的终点,A的终点是B的起点,A的路径和+B的路径和为需要得到的路径和,且A与B访问的点的交集中只包含A的起点和终点
于是我们就可以用meet in the middle来优化这个搜索
但是单纯这样搜的话,在n=14的情况下,不管是时间还是空间上都吃不消的,因此我们还需要优化一下
因为给出的是一个完全图,所以不管从哪个点开始,最终都可以得到所有的状态,所以我们只需要关于1作为起点进行搜索就好了
没有用题解里面的map,手写了一个拉链式hash,同样不知道哪里错了orz
T3。。。。。
看不懂啊orz