6. 花魁之争
解题思路:
根据题意,对于每一次操作,每个仙女来说都取最优解,那第一次每个仙女都操作一次,这时候胜出的仙女,是一定赢的。所以,只要计算n个字符串操作一次的最优字符串,然后,选出最小字符串有几个就是答案。
如何操作一次,支付串字典序最小?
- 存在这样的i和j,直接交换
i < j && s[ i ] > s[ j ]
s[j]尽量小的情况下j尽量大 - 存在两个相同的字符(容易漏掉)
- 交换最后两个字符(容易漏掉)
#include <iostream>
#include<vector>
using namespace std;
const int N = 1e5 + 10;
vector<string> vs;
int n;
string cal(string &s) {
vector<int> ps[26];
int