HDOJ/HDU 1015 Safecracker(枚举、暴力)
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
题意:输入一个数target 和一个字符串 s,在字符串 s 找出一个由5个字符组成的最大字符串使得v - w^2 + x^3 - y^4 + z^5 = target ;
分析:枚举所有的5个元素组成的集合,依次去判断
5层循环
import java.util.Arrays;
import java.util.Scanner;
public class Main{
static char at[]={' ','A','B','C','D','E','F','G','H','I','J'
,'K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//for(int i='A';i<='Z';i++){
//char c = (char)i;
//System.out.print("'"+c+"',");
//}
while(sc.hasNext()){
int target = sc.nextInt();
String str = sc.next();
if(target==0&&str.equals("END")){
return;
}
char chs[] = str.toCharArray();
Arrays.sort(chs);
for(int i=0,j=chs.length-1;i<chs.length/2;i++,j--){
char c=chs[i];
chs[i]=chs[j];
chs[j]=c;
}
boolean haveAnswer = false;
con: for(int a=0;a<chs.length;a++){
for(int b=0;b<chs.length;b++){
if(a==b){
continue;
}
for(int c=0;c<chs.length;c++){
if(a==c||b==c){
continue;
}
for(int d=0;d<chs.length;d++){
if(d==a||d==b||d==c){
continue;
}
for(int e=0;e<chs.length;e++){
if(e==a||e==b||e==c||e==d){
continue;
}
int ap[] = new int[5];
for(int j=0;j<ap.length;j++){
for(int i=1;i<at.length;i++){
if(j==0){
if(chs[a]==at[i]){
ap[0]=i;
break;
}
}else
if(j==1){
if(chs[b]==at[i]){
ap[1]=i;
break;
}
}else
if(j==2){
if(chs[c]==at[i]){
ap[2]=i;
break;
}
}else
if(j==3){
if(chs[d]==at[i]){
ap[3]=i;
break;
}
}else
if(j==4){
if(chs[e]==at[i]){
ap[4]=i;
break;
}
}
}
}
int sum=0;
for(int i=0;i<ap.length;i++){
if(i%2==0){
sum+=Math.pow(ap[i], i+1);
}else{
sum-=Math.pow(ap[i], i+1);
}
}
if(sum==target){
String s="";
s+=chs[a];
s+=chs[b];
s+=chs[c];
s+=chs[d];
s+=chs[e];
System.out.println(s);
haveAnswer=true;
break con;
}
}
}
}
}
}
if(!haveAnswer){
System.out.println("no solution");
}
}
}
}
HDOJ/HDU 1015 Safecracker(枚举、暴力)的更多相关文章
- HDOJ(HDU).1015 Safecracker (DFS)
HDOJ(HDU).1015 Safecracker [从零开始DFS(2)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1 ...
- HDU 1015.Safecracker【暴力枚举】【8月17】
Safecracker Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is lo ...
- ZOJ 1403&&HDU 1015 Safecracker【暴力】
Safecracker Time Limit: 2 Seconds Memory Limit: 65536 KB === Op tech briefing, 2002/11/02 06:42 ...
- HDOJ/HDU 1015 Safecracker(深搜)
Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Kle ...
- hdu 1015 Safecracker 水题一枚
题目链接:HDU - 1015 === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Klein s ...
- HDU 1015 Safecracker 解决问题的方法
Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is locked in a Kl ...
- HDU 1015 Safecracker【数值型DFS】
Safecracker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- HDU 1015 Safecracker(第一次用了搜索去遍历超时,第二次用for循环能够了,思路一样的)
Safecracker Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total S ...
- HDU 1015 Safecracker
解题思路:这题相当诡异,样例没过,交了,A了,呵呵,因为理论上是可以通过的,所以 我交了一发,然后就神奇的过了.首先要看懂题目. #include<cstdio> #include< ...
随机推荐
- Erlang官方站点
YOUR ERLANG COMMUNITY SITE Welcome to erlangcentral.org, the Erlang community site where you can rea ...
- greenplum学习
公司TM蛋疼,动不动让你学习新东西,就是不让你闲下来,本着胳膊拧不过大腿定律,忍了,这是背景. 好吧哥端起一本厚厚的<GreenPlum企业应用实战>,打开百度开始GP的学习之路: GP只 ...
- 【原创】Linux 内核模块编程
sudo gedit hello.c #include <linux/module.h> #include <linux/kernel.h> #include <linu ...
- c语言位运算符
C语言既具有高级语言的特点,又具有低级语言的功能. 所谓位运算是指进行二进制位的运算. C语言提供的位运算: 运算符 含义 & 按位与 | 按位或 ∧ 按位异或 ∽ ...
- js函数与变量同名
console.log(a); var a = 3; function a(){} 输出的结果是:[Function: a] 注意一下几点就能知道原因了! 1)函数声明会置顶2)变量声明也会置顶3)函 ...
- thinkphp+mysql+bootstrap
#thinkphp+mysql+bootstrapthinkphp3.2.3,bootstrap V3一个简易的企业cms网站系统,只要将clients的host改为对应的域名即可.thinkphp. ...
- QQ空间的“神奇”图片
近几天好多朋友问我qq空间出现的神奇图片原理,最近比较烦,事情比较多,一直没理.加上我对PHP之类的语言也一知半解. 今天闲了看了一下QQ空间,发现这个很早以前就有人写过这样的帖子了 看别人解释 (转 ...
- 从IT的角度思考BIM(二):模式与框架
我们满怀着美好期许,鼓起勇气敲响了 BIM 世界的大门.忽然人群中有人高呼:BIM 已死,大家都散了吧! 这时人群开始骚动起来.“我早就说这玩意是忽悠人的吧,你们不信还偏要来”,“我花了好多钱准备这次 ...
- Controllers, Actions 和 Action Results
Controllers, Actions 和 Action Results 原文:Controllers, Actions, and Action Results作者:Steve Smith翻译:姚阿 ...
- C语言可变参数在宏定义中的应用
在C语言的标准库中,printf.scanf.sscanf.sprintf.sscanf这些标准库的输入输出函数,参数都是可变的.在调试程序时,我们可能希望定义一个参数可变的输出函数来记录日志,那么用 ...