uva1262(编码与解码)
来源:互联网 发布:pdf.js 打开 word文档 编辑:程序博客网 时间:2024/06/05 04:27
题目大意:
给出两个6行5列的字母矩阵,找出满足如下条件的密码:密码中的每个字母在两个矩阵的对应列出现。现在找出字典序第k小的满足条件的密码.
题目分析:
因为数据量很小,所以可以采用暴力枚举的方法找到第k个答案。
代码:
#include <stack>#include <vector>#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>using namespace std;const int row=6;const int col=5;const int maxn=50;stack<char>out;stack<char>temp;vector<char>v[maxn];bool vis[maxn];bool visit[maxn][maxn]; ///第一个矩阵第j列有哪个字符void print(){ for(int i=1;i<=col;i++){ cout<<i<<":"; for(int j=0;j<(int)v[i].size();j++){ cout<<v[i][j]<<" "; } cout<<endl; }}void print_ans(stack<char>out){ if(out.empty()) return; char val=out.top(); out.pop(); print_ans(out); cout<<val;}void dfs(int pos,int& num){ if(num<=0){ return; } if(pos==col+1){ num--; if(num==0){ temp=out; print_ans(temp); cout<<endl; } return; } for(int i=pos;i<=col;i++){ for(int j=0;j<(int)v[i].size()&&!vis[i];j++){ vis[i]=1; out.push(v[i][j]); dfs(pos+1,num); out.pop(); vis[i]=0; } }}int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); char ch; int T,k; cin>>T; while(T--) { cin>>k; while(!out.empty()) out.pop(); for(int i=1;i<=col;i++){ v[i].clear(); } memset(visit,0,sizeof(visit)); for(int i=1;i<=row;i++){ for(int j=1;j<=col;j++){ cin>>ch; visit[j][ch-'A']=true; } } for(int i=1;i<=row;i++){ for(int j=1;j<=col;j++){ cin>>ch; if(visit[j][ch-'A']){ v[j].push_back(ch); visit[j][ch-'A']=false; } } } for(int i=1;i<=col;i++){ sort(v[i].begin(),v[i].end()); } //print(); dfs(1,k); if(k>0){ cout<<"NO"<<endl; } } return 0;}
阅读全文
0 0
- uva1262(编码与解码)
- uva1262(排列计数的编码解码)
- UVA1262
- UVa1262
- js 编码解码 与 java编码解码
- js 编码解码 与 java编码解码
- 字符串编码与解码函数(UTF8)
- URL编码与解码(特殊字符)
- Base64编码与解码(转)
- (转载)URL编码与解码
- 哈夫曼(Huffman)编码与解码
- Base64编码与解码
- BASE64编码与解码
- BASE64编码与解码
- Base64编码与解码
- base64编码与解码
- huffman编码与解码
- UCS2编码与解码
- 【Scikit-Learn 中文文档】支持向量机
- C++复习(1):类的简单介绍及C语言中函数用法的扩充
- 疯狂Activiti6.0连载(17) Drools规则语法概述
- Java线程
- C++高级编程 第十章: 探索继承技术
- uva1262(编码与解码)
- 大数据处理平台Hadoop之浅析
- 当RPM包安装遇上“依赖性”问题时的解决办法
- 329. Longest Increasing Path in a Matrix
- 【Scikit-Learn 中文文档】随机梯度下降
- 欢迎使用CSDN-markdown编辑器
- div 层基础知识
- RMQ模板题 poj3264 Balanced Lineup
- 剑指offer:数组中重复的数字