ZOJ 1403&&HDU 1015 Safecracker【暴力】
Safecracker
Time Limit: 2 Seconds Memory Limit: 65536 KB
=== 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 no solution
no solution
no solution
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1403
题意简述:
密码序列由一系列大写字母组成,在解密序列不唯一的情况下,按字典序输出最后一个,解密公式:v - w^2 + x^3 - y^4 + z^5 = target
解题思路:
由于题目中解的值域已经确定,解元素中的v,w,x,y,z都是题目中给定集合中的一个元素,数据范围较小枚举便可。
*注意:由于题目求得是密码序列是按字典顺序的最后一个,所以再次我将之先降序排序,这样一来找到的第一个符合条件的肯定便是最后的!
题目输出可能有点问题,已更正,下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 char letters[15];
4 int value[15],target;
5 void process(int len)
6 {
7 int a,b,c,d,e;
8 for(a=0;a<len;a++)
9 for(b=0;b<len;b++)
10 if(a!=b)
11 for(c=0;c<len;c++)
12 if(a!=c&&b!=c)
13 for(d=0;d<len;d++)
14 if(a!=d&&b!=d&&c!=d)
15 for(e=0;e<len;e++)
16 if(a!=e&&b!=e&&c!=e&&d!=e)
17 if(value[a]-pow(value[b],2.0)+pow(value[c],3.0)-pow(value[d],4.0)+pow(value[e],5.0)==target)
18 {
19 printf("%c%c%c%c%cn",value[a]+'A'-1,value[b]+'A'-1,value[c]+'A'-1,value[d]+'A'-1,value[e]+'A'-1);
20 return;
21 }
22 printf("no solutionn");
23 }
24 bool compare(int a,int b)
25 {
26 return a>b;
27 }
28 int main()
29 {
30 int i;
31 while(scanf("%d%s",&target,letters)!=EOF)
32 {
33 if(target==0&&strcmp(letters,"END")==0)
34 return 0;
35 i=0;
36 while(letters[i])
37 {
38 value[i]=letters[i]-'A'+1;
39 i++;
40 }
41 sort(value,value+i,compare);
42 process(i);
43 }
44 return 0;
45 }
- ESP32 DevKitC 编译烧写 AliOS Things
- 使用R完成K近邻分类
- 使用R完成逻辑斯蒂回归分类 直接上代码,如下:
- 基于时间点的不完全恢复的例子(r6笔记第9天)
- R-正太分布,检验
- R完成--决策树分类 一个使用rpart完成决策树分类的例子如下:
- Apollo的数据开放平台介绍
- 手把手教你运行apollo
- 归档模式下四种完全恢复的场景(r6笔记第8天)
- Git与Repo快速入门
- 10g,11g中的数据库克隆安装(r6笔记第7天)
- CVE-2017-16943 Exim UAF漏洞分析——后续
- “盲”逆向:iOS 应用 Blind 寻踪
- 根据时间字段导入数据的问题总结 (r6笔记第6天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 腾讯云录音文件识别-iOS SDK
- ESP8266如何设置wifi。
- ESP8266搭建web服务器
- 关于持续交付中Git分支管理的思考
- 轻松应对并发问题,Newbe.Claptrap 框架中 State 和 Event 应该如何理解?
- 如何暂停一个正在运行的线程?
- WebMonitor采集端优化之路
- 美颜算法之自动祛斑算法实现 | 案例分享
- 附025.kubeadm部署Kubernetes更新证书
- 消息提示时间的格式化例子(小程序)
- 【Spark】用scala2.11编译打包构建镜像
- 移动端事件穿透的原理与解决方案
- 你被追尾了
- 深入理解JavaScript作用域
- 《闲扯Redis七》Redis字典结构的底层实现