nit是小w所在的学校,我们认为该学校可以近似成一个由n个点和m条无向边组成的连通图。
nit的体育分数里有一项是阳光跑。
每次开始阳光跑,会在n个点里随机生成好多点位,并且需要按照点位顺序跑。
假设学校的结构如上图所示,本次阳光跑随机生成了5个点位分别为3,1,2,4,3。
那么如果想要完成阳光跑,就必须从某个点出发,然后按照给出顺序依次经过3->1->2->4->3。
当然,阳光跑只要求你对于这些点位按照顺序经过,实际上你在跑到一半的时候也可以拐去其他的位置。
在上述的例子中,假设你按照3->4->2->1->2->4->3这个顺序进行跑步,也可以完成3,1,2,4,3这五个点位。
也就是说当且仅当,阳光跑随机生成的点位序列(注意顺序)是你跑步序列的一个子序列时,你完成阳光跑。
某一个序列的子序列指的是,保留该序列的顺序并删除一些元素或者不进行删除后的结果。
小doge是一个乐于助人的好孩子,他常常帮助别人跑步。
这天,小doge想要完成自己的阳光跑并且顺便帮助小w一起完成即一个人完成两人的任务,并且两个人的任务是独立的,小doge有a个点位,小w有b个点位。小doge想要最效率的跑法,所以他想知道他最少要跑多远。小doge可以选择任何一个点出发。
对于阳光跑的要求,我们如下定义:有n个有顺序的点位
~
,想要完成阳光跑,必须按照顺序依次经过每个点位,并且在到达前一个点位后到达下一个点位才有效。
ps: 这是违规操作,小朋友们不要模仿。