hdu 1015 - Safecracker
来源:互联网 发布:电脑编程语言 编辑:程序博客网 时间:2024/06/08 07:59
题目:字母'A'~'Z'对应数值1~26,现在给你一个字母表和target,从里面选取5个字母v、w、x、y、z,
使得公式v - w^2 + x^3 - y^4 + z^5 = target成立,找到字典序最大的vwxyz。
分析:简单题、搜索。因为一定选取5个元素,所以直接暴力即可(模拟递归)。
说明:计算时标记取过的字母,避免重复计算。
#include <algorithm>#include <iostream>#include <cstdlib>#include <cstring>#include <cstdio>#include <cmath>using namespace std;char table[13];int visit[13];int value(int v, int w, int x, int y, int z){v = table[v]-'A'+1; w = table[w]-'A'+1;x = table[x]-'A'+1; y = table[y]-'A'+1; z = table[z]-'A'+1;return v - w*w + x*x*x - y*y*y*y + z*z*z*z*z;}int main(){int target;while (~scanf("%d%s",&target,table) && target) {int flag = 0,len = strlen(table);sort(table, table+len);for (int v = len-1 ; v >= 0 ; -- v) {visit[v] = 1;for (int w = len-1 ; w >= 0 ; -- w) if (!visit[w]) {visit[w] = 1;for (int x = len-1 ; x >= 0 ; -- x) if (!visit[x]) {visit[x] = 1;for (int y = len-1 ; y >= 0 ; -- y) if (!visit[y]) {visit[y] = 1;for (int z = len-1 ; z >= 0 ; -- z) if (!visit[z]) {if (value(v, w, x, y, z) == target) {printf("%c%c%c",table[v],table[w],table[x]);printf("%c%c\n",table[y],table[z]);flag = 1;break;}}visit[y] = 0; if (flag) break;}visit[x] = 0; if (flag) break;}visit[w] = 0; if (flag) break;}visit[v] = 0; if (flag) break;}if (!flag) printf("no solution\n");} return 0;}
0 0
- HDU - 1015 Safecracker
- HDU 1015 Safecracker
- HDU 1015 Safecracker
- Hdu 1015 Safecracker
- hdu 1015 Safecracker
- hdu 1015 Safecracker(枚举)
- hdu 1015 Safecracker
- hdu 1015 Safecracker
- HDU 1015 Safecracker(深搜)
- hdu 1015 Safecracker
- hdu 1015 Safecracker dfs()
- hdu 1015 Safecracker
- HDU 1015 Safecracker
- hdu(1015)Safecracker
- hdu/hdoj 1015 Safecracker
- hdu 1015 Safecracker
- hdu 1015 Safecracker
- hdu 1015 Safecracker
- 201 - Squares
- HDU 2602 Bone Collector 01背包
- 下载mysql linux
- Django开发myblog自己一步步做的(一)
- C++回顾之深浅拷贝、禁止拷贝、空类的默认成员
- hdu 1015 - Safecracker
- C++回顾之const对象、const成员函数、mutable类型
- WCF基本介绍
- C++回顾之static成员、static成员函数及类对象大小计算
- Android菜单设计(1) : 使用xml文件布局创建 options menu
- 在Eclipse中用JDBC连接Sql Server 2005总结
- 关于线程编程(About Threaded Programming)
- LINUX安装图形管理界面
- 链表操作