摘要: 传送门 这道题看起来十分的不可做……可能是我数学太差智商太低了orz。 首先如果一个人的家和办公室在同一侧那就完全不用考虑,把结果记下来就行。 然后我们先考虑k=1的情况。因为只能建1座桥,那么我们发现(除去过桥一个单位长度不算)答案就是sigma(abs(ai-x) + abs(bi-x)),其中 阅读全文
posted @ 2018-09-20 18:00 CaptainLi 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 传送门 这题的思路还是很清晰的,就是把图建出来之后用tarjan缩点,之后在DAG中用DP(或者说dfs)求出最长路就可以啦。 不过事情是不会像想象中那么简单的。 这个题目的图在建立的时候非常麻烦……首先我们不可能挨个枚举,这样复杂的最坏到O(n^2),建图都已经T了就没什么可做的了。 所以我们考虑 阅读全文
posted @ 2018-09-20 15:41 CaptainLi 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 传送门 一道非常好的DP。看这个可能会觉得与01背包很像,不过这个的问题在于现做的菜肴会影响到后面的菜肴的价值。 我们在进行01背包DP时,一件物品的价值是不随着其被枚举的位置改变而改变的,但是这道题中不行。假设你现在有两种菜肴,你先做第一种会导致第二种的价值受损,反之第一种的价值就会受损,我们并不 阅读全文
posted @ 2018-09-20 15:12 CaptainLi 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题的题目描述看起来很奇怪。实际上的意思是要求在这个有向图之内能到达的点对有多少,解释一下题里的图片就是(1,1),(1,2),(1,3),(1,4),(1,5),(2,2),(2,3),(2,4),(2,5),(3,3),(3,4),(3,5),(4,4),(5,5)一共14个。 先小声 阅读全文
posted @ 2018-09-20 15:04 CaptainLi 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 传送门 一道神奇的DP………(鬼知道他为什么在tarjan里面) 一开始可能会考虑贪心或者什么其他神奇的算法,不过还是DP比较靠谱。 我们用f[i]表示摧毁所有i左侧的炸 药包最少需要的能量,用g[i]表示摧毁所有i右侧的炸 药包最少需要的能量。 那么我们只要找到满足j < i,a[i] - a[j 阅读全文
posted @ 2018-09-20 14:48 CaptainLi 阅读(779) 评论(0) 推荐(0) 编辑
摘要: 传送门 这道题还是比较容易看出是tarjan的。首先我们知道如果学校之间成环的话那么学校之间一定能到达,直接缩成一个点就好了。 缩完点之后我们得到了一个DAG。之后因为子任务A要求的是最少接受新软件的学校有多少个,可以很容易的想出我们只要给所有入度为0的学校发一份就可以了,因为剩下的必然是可以从其他 阅读全文
posted @ 2018-09-20 14:39 CaptainLi 阅读(119) 评论(0) 推荐(0) 编辑