題意:
有乙個環,上面2n個位置,其中n個互不相同的小寫字母。
小寫代表車,大寫代表車位。
一次操作是指把某輛車直接移動到車位上。
如 bacacb,乙個合法的移動順序是,a, c, b
求出字典序最小的移動順序,如果無解輸出none。
思路:
貪心策略:每次取字典序最小的可以移動的車移動, 如果不存在。則無解。
如果最後有解,因為每次取最小,所以自然是最小字典序。
但是,怎麼在無解的情況下,其他的取法也不可能有解呢?
假設…c….c….現在最小的可以移動的車是c
如果存在乙個合法順序,把c放到以後來移動。那麼c…c之間的一段在c移動之前一定都是空的, 也就意味著c的移動順序可以被提前。
string notok = "none";
class circleorder
if (circle[pos] == j+'a'-('a'-'a'))
pos = p[j];
while ( (islower(circle[pos]) && used[circle[pos] - 'a'] || isupper(circle[pos]) && !used[circle[pos] - 'a'] || circle[pos] - 'a' == j)
&& circle[pos] != j+'a'-('a'-'a'))
if (circle[pos] == j+'a'-('a'-'a'))
}if (ok)
else
return notok;
}return ans;
}}
SRM 07 D 天才麻將少女KPM
天才麻將少女kpm立志要在日麻界闖出一番名堂。kpm上週叒打了n場麻將,但她這次又沒控分,而且因為是全市參與的麻將大賽,所以她的名次範圍是0.10 5。名次可能等於0是因為kpm那場沒去打 沒去打就意味著無限的可能性。kpm叒想要讓自己的名次嚴格遞增。為了避免被妹子懷疑,她只能把沒打的比賽的名次改成...