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}. ...
随机推荐
- iOS点击cell查看大图,点击大图还原小图-b
一.项目需求 用collectionView展示很多照片,点击某个照片,用全屏scrollView无限循环的方式查看图片.点击放大的图片,图片缩小到原先的尺寸. 如图gif1.gif所示,点击中间的图 ...
- iOS10 配置须知-b
在iOS10中,如果你的App想要访问用户的相机.相册.麦克风.通讯录等等权限,都需要进行相关的配置,不然会直接crash.需要在info.plist中添加App需要的一些设备权限. NSBlueto ...
- jquery插件——图片放大器
用到了JQzoom插件,可以使图片实现放大效果
- html5游戏引擎-Pharse.js学习笔记(一)
1.前言 前几天随着flappy bird这样的小游戏的火爆,使我这种也曾了解过html5技术的js业余爱好者也开始关注游戏开发.研究过两个个比较成熟的html5游戏引擎,感觉用引擎还是要方便一些.所 ...
- DevExpress GridControl使用(转)
DevExpress GridControl使用 (一)原汁原味的表格展示 Dev控件中的表格控件GridControl控件非常强大.不过,一些细枝末节的地方有时候用起来不好找挺讨厌的.使用过程中,多 ...
- javascript 获取父页面中元素对象方法
父页面中: <input type="hidden" id="areaID" value="test1"> <iframe ...
- QT for android 比较完美解决 全屏问题
项目用到QT qml,需要在android下面全屏显示,折腾了一晚上,搞定,分享下,希望能帮助他人. 参考 Qt on Android:让 Qt Widgets 和 Qt Quick 应用全屏显示 该 ...
- release下去除nslog宏
#ifdef __OPTIMIZE__ #define NSLog(...) #endif 加在pch文件里面
- Code First 中的 TPH TPT TPC
public class Blog { public int Id { get; set; } public DateTime Creationdate { get; set; } public st ...
- CSS reset--重置样式
在一般我们写一个自己自定义的HTML的时候,我们会清除样式或者说重置样式 重置样式.清除浏览器默认样式,一切全部用自己的设置,并配置适合设计的基础样式 下面给出所有一般需要清除的样式: html,bo ...