题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1015

题目描述:给出一个目标值target,然后给出一个字符串,在字符串中A=1,B=2,...,Z=25,问能否满足运算:$$ v - w^2 + x^3 - y^4 + z^5 = target $$,若满足,则输出字典序最大的字符串,否则输出no solution;

网上说也可以用多重循环暴力来做,但作为对DFS的一个学习,还是用DFS+回溯的思想来做吧。

AC代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>using namespace std;const int maxn = 25;int n, a[maxn], b[maxn], len;
char ch[maxn], temp;
bool flag, vis[maxn];bool cmp(int p, int q) {return p > q;
}void check() {if (n == b[0] - b[1] * b[1] + b[2] * b[2] * b[2] - b[3] * b[3] * b[3] * b[3] + b[4] * b[4] * b[4] * b[4] * b[4])flag = true;return;
}void DFS(int num) {if (flag)return;if (num == 5) {check();return;}for (int i = 0; i < len; i++) {if (!vis[i] && !flag) {vis[i] = true;b[num] = a[i];DFS(num + 1);vis[i] = false;}}
}int main() {while (cin >> n >> ch && n && ch != "END") {len = strlen(ch);for (int i = 0; i < len; i++) {a[i] = ch[i] - 'A' + 1;}flag = false;sort(a, a + len, cmp);DFS(0);if (flag) {for (int i = 0; i < 5; i++) {temp = b[i] - 1 + 'A';printf("%c", temp);}printf("\n");} else {printf("no solution\n");}}return 0;
}

转载于:https://www.cnblogs.com/youpeng/p/10829353.html

[HDU 1015] Safecracker相关推荐

  1. hdoj 1015 Safecracker

    见hdoj 1015 或 zoj 1403 或tzu 1308 我使用了枚举法,代码写的很罗嗦,可能还是深度优先搜索写起来更清晰. /* hdoj 1015 */ #include <stdio ...

  2. 杭电OJ分类题目(2)

    原题出处:HDOJ Problem Index by Type,http://acm.hdu.edu.cn/typeclass.php 杭电OJ分类题目(2) HDU Water~~~ HDU 100 ...

  3. 【HDOJ】1015 Safecracker_天涯浪子_新浪博客

    [题目]http://acm.hdu.edu.cn/showproblem.php?pid=1015 [报告] 题目写的很长,忽略一系列废话,题意就是求一个方程v - w^2 + x^3 - y^4 ...

  4. HDU题目分类大全【大集合】

    基础题: 1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029.  1032.1037.1040.1048.1056.105 ...

  5. 转载:Hdu 题目分类

    原址点击 基础题:1000.1001.1004.1005.1008.1012.1013.1014.1017.1019.1021.1028.1029. 1032.1037.1040.1048.1056. ...

  6. hdu与poj题目分类

    POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...

  7. hdu HDOJ 题目分类(转)

    动态规划:2037 2054 2084 hdu题目分类(转) http://apps.hi.baidu.com/share/detail/17053154 1001 整数求和 水题 1002 C语言实 ...

  8. 【转载】图论 500题——主要为hdu/poj/zoj

    转自--http://blog.csdn.net/qwe20060514/article/details/8112550 =============================以下是最小生成树+并 ...

  9. [转] HDU 题目分类

    转载来自:http://www.cppblog.com/acronix/archive/2010/09/24/127536.aspx 分类一: 基础题:1000.1001.1004.1005.1008 ...

最新文章

  1. pandas使用query函数基于判断条件获得dataframe中满足条件的数据行(row)的索引列表(index of rows matching conditions in dataframe)
  2. TCP/UDP常见端口参考(超全_面试题常用_建议收藏)
  3. jvm gc策略_IBM JVM调整– gencon GC策略
  4. GPL以及Copyleft协议使用率下降明显
  5. .Net Core 学习资料
  6. php怎么取request,PHP-如何在Guzzle中获取Request对象?
  7. Java线程更新ui_android使用多线程更新ui示例分享
  8. MySQL数据库表分区功能详解
  9. 由*.flo(光流)文件生成png图片
  10. 关联规则挖掘算法_关联规则的挖掘与应用——Apriori和CBA算法
  11. JS 常用组件的思路与坑
  12. julia: 如何序列化和反序列化?
  13. java控制台进度_java进度条:控制台输出百分比示例代码
  14. 华为设备MSDP配置命令
  15. 计算机 word 节是什么,Word分节符的含义和使用方法详解-word技巧-电脑技巧收藏家...
  16. 双硬盘分别装windows和linux,双硬盘分别安装windows和Ubuntu20双系统
  17. http请求状态码有哪些?分别代表什么意思?
  18. js-打印1-100以内的质数(素数)
  19. win10背景色改成豆沙绿 锁屏后失效修改方式
  20. java门禁系统项目开发实现

热门文章

  1. 电脑键盘上每个键作用
  2. 监听edittext中文字个数变化··
  3. Android library projects cannot be launched问题的解决
  4. DotNetTextBox V2.0 Web Control(ASP.NET2.0 增强型TextBox控件,完全支持AJAX.NET)
  5. kotlin集合操作符——过滤操作符
  6. bzoj 3131 [Sdoi2013]淘金(数位dp)
  7. CyclicBarrier及CountDownLatch的使用
  8. 针对接口编程,不要针对实现编程
  9. 邊做邊學 Internet Explorer 8:瞭解 IE8 相容性技術
  10. Sharepoint学习笔记—Site Definition系列-- 5、List Definition与List Template之比较