uva1262Password】的更多相关文章

题目链接 紫书P323 题意:两个6*5的字母矩阵,两个矩阵每列相同的字母,每列取一个,求按照字典序第k小的序列 分析: 对于第一个样例来说,我们得到{ACDW}.{BOP}.{GMOX}.{AP}.{GSU} 则一共有4×3×4×2×3=288种密码,我们先计算这个数列的后缀积:288.72.24.6.3.1 要确定第一个字母,如果1≤k≤72,则是A:如果73≤k≤144,则是C,以此类推. k / 72 + 1就是第一个集合中的第几个元素 求第二个集合的时候,k = k % 72 ...…
解码,暴力. 恬不知耻地把暴力题解放了上来,因为k比较小,直接暴力找到字符串第k大就可以了. 编码解码就是根据组合数学公式算出来它到底在哪. dfs返回bool就能使得找到字典序第k大字符串以后退出dfs,节省时间. #include<cstdio> #include<algorithm> #include<cstring> using namespace std; ; ][maxl][maxl]; ][maxl][maxl]; int cnt[maxl],a[maxl…