uva1262Password
解码,暴力。
恬不知耻地把暴力题解放了上来,因为k比较小,直接暴力找到字符串第k大就可以了。
编码解码就是根据组合数学公式算出来它到底在哪。
dfs返回bool就能使得找到字典序第k大字符串以后退出dfs,节省时间。
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxl = 30; char s[3][maxl][maxl];
int ok[3][maxl][maxl];
int cnt[maxl],a[maxl][maxl];
int res,num,last;
int p[maxl]; bool dfs(int n) {
if(n==6) {
num++;
if(num==last) {
for(int i=1;i<=5;i++) printf("%c",p[i]+'A');
printf("\n");
return true;
}
return false;
}
for(int i=1;i<=cnt[n];i++) {
p[n]=a[n][i];
if(dfs(n+1)) return true;
}
return false;
} int main() {
int T;
scanf("%d",&T);
while(T--) {
scanf("%d",&last);
memset(ok,0,sizeof(ok));
memset(cnt,0,sizeof(cnt));
for(int k=1;k<=2;k++)
for(int i=1;i<=6;i++) {
scanf("%s",s[k][i]+1);
for(int j=1;j<=5;j++)
ok[k][j][s[k][i][j]-'A']=1;
}
for(int i=1;i<=5;i++)
for(int j=0;j<26;j++)
if(ok[1][i][j]&&ok[2][i][j])
a[i][++cnt[i]]=j;
res=1; num=0;
for(int i=1;i<=5;i++) res*=cnt[i];
if(res<last) printf("NO\n");
else dfs(1);
}
return 0;
}
uva1262Password的更多相关文章
- UVA1262Password(第K字典序)
题目链接 紫书P323 题意:两个6*5的字母矩阵,两个矩阵每列相同的字母,每列取一个,求按照字典序第k小的序列 分析: 对于第一个样例来说,我们得到{ACDW}.{BOP}.{GMOX}.{AP}. ...
随机推荐
- iOS8中的UIAlertController
转: iOS8推出了几个新的“controller”,主要是把类似之前的UIAlertView变成了UIAlertController,这不经意的改变,貌似把我之前理解的“controlle ...
- C# WPF打印报表
前天我的一个同学由于打印报表而苦恼,所以就介绍了一下WPF的打印报表,希望能帮助到大家. 展示报表 1. 首先新建项“报表”,选定项目,右击,点击“添加”->“新建项”->“报表”
- 51nod 1640 天气晴朗的魔法 最小生成树
题目链接: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1640 题解: 先求最小生成树,记录最大边. 然后求最大生成树 ...
- Matlab找二维数组最大值
1.m先max(x)求出每列最大值,返回行向量,再max对行向量求出最大值,就是max(max(x)). 注意:max(x),不管x是行列向量,只要是向量,那么就返回一个值. 2.先x(:)转为按列的 ...
- SQL Server 之 DBCC
--检查索引碎片情况 dbcc showconfig(tablename) 具体例子: --上图为碎片整理之前 ALTER INDEX ALL on Citation REBUILD --下图为碎片整 ...
- curPos和tgtPos
curpos tgtpos 乍一看以为是当前位置和目标位置,但在项目里面这两个位置有点坑 当客户端玩家移动或者AI里面的位置,会把获得的位置付给tgtpos 而以前的tgtpos会付给curpos 所 ...
- Oracle中的 UPDATE FROM 解决方法
转:http://www.cnblogs.com/JasonLiao/archive/2009/12/23/1630895.html Oracle中的 UPDATE FROM 解决方法 在表的更新操作 ...
- jquery层居中,点击小图查看大图,弹出层居中代码,顶部层固定不动,滚动条滚动情况
jquery层居中,点击小图查看大图,弹出层居中代码 http://www.cnblogs.com/simpledev/p/3566280.html 见第一版,发现一个情况,如果页面内容多出一屏的情况 ...
- hdoj 1875 畅通工程再续
题目传送门:http://acm.hdu.edu.cn/showproblem.php?pid=1875 //9403289 2013-10-24 17:00:49 Accepted 1875 62M ...
- unity3d GameObject.Find 严格区分大小写的
GameObject.Find 查找 static function Find (name : string) : GameObject Description描述 Finds a game obje ...