摘要:
测试地址:线性代数做法:从题目看出题目求的是将A矩阵中元素分为两个集合(取0或取1)使某一个值最大,那么我们可以把这个值转化成某个常数减去某个变量,转成求该变量的最小值,我们注意关键词“分为两个集合”“最小值”,就开始思考这是不是能用最小割解决,实际上是可以的,转化方... 阅读全文
摘要:
测试地址:线性代数做法:从题目看出题目求的是将A矩阵中元素分为两个集合(取0或取1)使某一个值最大,那么我们可以把这个值转化成某个常数减去某个变量,转成求该变量的最小值,我们注意关键词“分为两个集合”“最小值”,就开始思考这是不是能用最小割解决,实际上是可以的,转化方... 阅读全文
摘要:
测试地址:巡逻做法:贪心,对于K=1的情况下,只需要找树的直径(树上最长的路径),设这个直径为len,则结果为2*(n-1)-len+1。对于K=2的情况,先找树的一个直径,将答案总数tot赋值为2*(n-1)-len+1,然后把直径上所有边赋值为-1,再求一遍直径,... 阅读全文
摘要:
测试地址:巡逻做法:贪心,对于K=1的情况下,只需要找树的直径(树上最长的路径),设这个直径为len,则结果为2*(n-1)-len+1。对于K=2的情况,先找树的一个直径,将答案总数tot赋值为2*(n-1)-len+1,然后把直径上所有边赋值为-1,再求一遍直径,... 阅读全文
摘要:
测试地址:天天爱跑步做法:这里转载一下我看的题解:点这里,这里面对于整个题的做法应该写的很明确了,这里就不再赘述了。我的做法是实时用倍增求出路径两点的LCA(当然也可以离线用Tarjan做,貌似快一点),然后用类似邻接表的链表结构存储上面题解里面的“人”,结构体里有四... 阅读全文
摘要:
测试地址:天天爱跑步做法:这里转载一下我看的题解:点这里,这里面对于整个题的做法应该写的很明确了,这里就不再赘述了。我的做法是实时用倍增求出路径两点的LCA(当然也可以离线用Tarjan做,貌似快一点),然后用类似邻接表的链表结构存储上面题解里面的“人”,结构体里有四... 阅读全文