Safecracker

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 13237    Accepted Submission(s): 6897

Problem Description
=== Op tech briefing, 2002/11/02 06:42 CST ===
"The
item is locked in a Klein safe behind a painting in the second-floor
library. Klein safes are extremely rare; most of them, along with Klein
and his factory, were destroyed in World War II. Fortunately old
Brumbaugh from research knew Klein's secrets and wrote them down before
he died. A Klein safe has two distinguishing features: a combination
lock that uses letters instead of numbers, and an engraved quotation on
the door. A Klein quotation always contains between five and twelve
distinct uppercase letters, usually at the beginning of sentences, and
mentions one or more numbers. Five of the uppercase letters form the
combination that opens the safe. By combining the digits from all the
numbers in the appropriate way you get a numeric target. (The details of
constructing the target number are classified.) To find the combination
you must select five letters v, w, x, y, and z that satisfy the
following equation, where each letter is replaced by its ordinal
position in the alphabet (A=1, B=2, ..., Z=26). The combination is then
vwxyz. If there is more than one solution then the combination is the
one that is lexicographically greatest, i.e., the one that would appear
last in a dictionary."
v - w^2 + x^3 - y^4 + z^5 = target
"For
example, given target 1 and letter set ABCDEFGHIJKL, one possible
solution is FIECB, since 6 - 9^2 + 5^3 - 3^4 + 2^5 = 1. There are
actually several solutions in this case, and the combination turns out
to be LKEBA. Klein thought it was safe to encode the combination within
the engraving, because it could take months of effort to try all the
possibilities even if you knew the secret. But of course computers
didn't exist then."
=== Op tech directive, computer division, 2002/11/02 12:30 CST ===
"Develop
a program to find Klein combinations in preparation for field
deployment. Use standard test methodology as per departmental
regulations. Input consists of one or more lines containing a positive
integer target less than twelve million, a space, then at least five and
at most twelve distinct uppercase letters. The last line will contain a
target of zero and the letters END; this signals the end of the input.
For each line output the Klein combination, break ties with
lexicographic order, or 'no solution' if there is no correct
combination. Use the exact format shown below."
 
Sample Input
1 ABCDEFGHIJKL
11700519 ZAYEXIWOVU
3072997 SOUGHT
1234567 THEQUICKFROG
0 END
Sample Output
LKEBA
YOXUZ
GHOST
no solution
 #include<iostream>
#include<cstdio>
#include<cmath>
#include<map>
#include<cstdlib>
#include<vector>
#include<set>
#include<queue>
#include<cstring>
#include<string.h>
#include<algorithm>
#define INF 0x3f3f3f3f
typedef long long ll;
typedef unsigned long long LL;
using namespace std;
const int N = 1e6+;
const ll mod = 1e9+;
char s[];
int a[];
int b[];
int visited[];
int n;
int flag=;
void DFS(int t){
if(flag==)return;
if(t==){
int sum1=b[]+b[]*b[]*b[]+b[]*b[]*b[]*b[]*b[];
int sum2=b[]*b[]+b[]*b[]*b[]*b[];
if(sum1-sum2==n){
flag=;
printf("%c%c%c%c%c\n",b[]-+'A',b[]-+'A',b[]-+'A',b[]-+'A',b[]-+'A');
return ;
}
return ;
}
for(int i=;i>=;i--){
if(visited[i]==)continue;
else if(visited[i]==&&a[i]==){
visited[i]=;
b[t]=i;
DFS(t+);
visited[i]=;
}
}
}
int main(){
while(scanf("%d %s",&n,s)!=EOF){
if(n==&&strcmp(s,"END")==)break;
int len=strlen(s);
flag=;
memset(a,,sizeof(a));
for(int i=;i<len;i++){
int tt=s[i]-'A'+;
a[tt]=;
}
memset(visited,,sizeof(visited));
DFS();
if(flag==)cout<<"no solution"<<endl; } }

hdu 1015(DFS)的更多相关文章

  1. HDOJ(HDU).1015 Safecracker (DFS)

    HDOJ(HDU).1015 Safecracker [从零开始DFS(2)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1 ...

  2. hdu 1342(DFS)

    Lotto Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  3. F - JDG HDU - 2112 (最短路)&& E - IGNB HDU - 1242 (dfs)

    经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬 ...

  4. F - Auxiliary Set HDU - 5927 (dfs判断lca)

    题目链接: F - Auxiliary Set HDU - 5927 学习网址:https://blog.csdn.net/yiqzq/article/details/81952369题目大意一棵节点 ...

  5. hdu - 1072(dfs剪枝或bfs)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1072 思路:深搜每一个节点,并且进行剪枝,记录每一步上一次的s1,s2:如果之前走过的时间小于这一次, ...

  6. HDU——2647Reward(DFS或差分约束)

    Reward Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  7. P - Sudoku Killer HDU - 1426(dfs + map统计数据)

    P - Sudoku Killer HDU - 1426 自从2006年3月10日至11日的首届数独世界锦标赛以后,数独这项游戏越来越受到人们的喜爱和重视. 据说,在2008北京奥运会上,会将数独列为 ...

  8. hdu 1142(DFS+dijkstra)

    #include<iostream> #include<cstdio> #include<cmath> #include<map> #include&l ...

  9. hdu 1181(DFS)变 形 课

    变形课 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 131072/65536 K (Java/Others)Total Submis ...

随机推荐

  1. spring启动component-scan类扫描加载过程---源码分析

    http://blog.csdn.net/xieyuooo/article/details/9089441#comments

  2. windows访问lnmp配置的虚拟域名

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://linuxzkq.blog.51cto.com/9379412/1630217 实 ...

  3. Finish 和 Complete 的区别

    2012年,在伦敦举行的语言大赛中,圭亚那选手Samsunder Balgobin 在回答比赛中最后一道问题   "你如何用一种容易让人理解的方式解释 complete与finished 的区別"时, ...

  4. js中的一些容易混淆的方法!

    数组的一些方法: 1.join()和split()方法  与之相反的是split()方法:用于把一个字符串分割成字符串数组.  注意返回的数组中不包括separator本身: 提示和注释注释:如果把空 ...

  5. JavaWeb 学习001-登录页面

    首先实现一个web应用的登录页面 1.遇到的问题: Servlet中 post 或者 get 方式 不能提交? 就是提交后,控制台没有反应,而且浏览器显示如图: 这样应该是不能进行页面的跳转,对这个, ...

  6. Hibernate一对一双向关联(注解)

    每一个人(Person)对应一个身份证号(IdCard) package cqvie.yjq.domain; import java.util.Date; import javax.persisten ...

  7. IntelliJ Idea 集成svn 和使用

    最近公司的很多同事开始使用svn,便尝试了一下,虽然快捷键与eclipse 有些不同,但是强大的搜索功能与"漂亮的界面"(个人认为没有eclipse好看 ),还是值得我们去使用的. ...

  8. php获取数据库中数据,转成json数据

    <?php //需要执行的SQL语句 //单条 $sql="select * from xinwen"; //多条数据 //$sql="select id,name ...

  9. Linux默认权限的计算公式(个人理解性的笔记~)

    先记下Linux下的权限可以分为 常见的 r(Read,读取):对文件,读取文件内容的权限:目录来说,具有浏览目 录的权限.权限值=4 w(Write,写入):对文件而言,具有新增.修改文件内容的权限 ...

  10. SQL Server 查询所有外键子父表关系

    SELECT table_name,fk_name,reference_table_name,fk_list_number,fk_detailFROM (SELECT object_name(f.ob ...