http://acm.hdu.edu.cn/showproblem.php?pid=1015

题意:给出一个目标值target和一个由大写字母组成的字符串 A-Z分别对应权值1-26

要求从给出的字符串中选出5个字符,它们的权值v,w,x,y,z应符合下列式子

v - w^2 + x^3 - y^4 + z^5 = target

同一个字符只能被选取一次

输出符合要求的5个字符

简单深搜模拟选取操作

# include <stdio.h>
# include <string.h> int Target, Len, Ans[6], Flag[20], Value[20]; int Dfs(int Count)
{
if(Count == 6)//判断选择的5个数是否符合式子
{
if(Ans[1] - Ans[2]*Ans[2] + Ans[3]*Ans[3]*Ans[3] - Ans[4]*Ans[4]*Ans[4]*Ans[4] + Ans[5]*Ans[5]*Ans[5]*Ans[5]*Ans[5] == Target)
{
printf("%c%c%c%c%c\n",Ans[1] + 'A' - 1, Ans[2] + 'A' - 1, Ans[3] + 'A' - 1, Ans[4] + 'A' - 1, Ans[5] + 'A' - 1);
return 1;
}
return 0;
} for(int i = 0; i <= Len - 1; i++)
{
if(Flag[i] == 0)
{
Flag[i] = 1;
Ans[Count] = Value[i]; //依次选取一个数
if(Dfs(Count + 1))
return 1; Flag[i] = 0;
}
} return 0;
} int main ()
{
char str[20];
while(scanf("%d %s",&Target, str) && (Target != 0 || strcmp(str, "END")))
{ //str为可选字母表 A-Z对应1-26
memset(Flag, 0, sizeof(Flag));
Len = strlen(str); for(int i = 0; i <= Len - 1; i++)
Value[i] = str[i] - 'A' + 1; //按权从小到大排序
for(int i = 0; i <= Len - 2; i++)
{
for(int j = i + 1; j <= Len - 1; j++)
{
if(Value[i] < Value[j])
{
int t = Value[i];
Value[i] = Value[j];
Value[j] = t;
}
}
} if(!Dfs(1))
printf("no solution\n");
} return 0;
}

  

HDOJ-1015 Safecracker(DFS)的更多相关文章

  1. HDU 1015 Safecracker (DFS)

    题意:给一个数字n(n<=12000000)和一个字符串s(s<=17),字符串的全是有大写字母组成,字母的大小按照字母表的顺序,比如(A=1,B=2,......Z=26),从该字符串中 ...

  2. HDOJ.1342 Lotto (DFS)

    Lotto [从零开始DFS(0)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1010 Tempter of ...

  3. LeetCode Subsets II (DFS)

    题意: 给一个集合,有n个可能相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: 看这个就差不多了.LEETCODE SUBSETS (DFS) class Solution { publ ...

  4. LeetCode Subsets (DFS)

    题意: 给一个集合,有n个互不相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: DFS方法:由于集合中的元素是不可能出现相同的,所以不用解决相同的元素而导致重复统计. class Sol ...

  5. HDU 2553 N皇后问题(dfs)

    N皇后问题 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description 在 ...

  6. 深搜(DFS)广搜(BFS)详解

    图的深搜与广搜 一.介绍: p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; orp ...

  7. 【算法导论】图的深度优先搜索遍历(DFS)

    关于图的存储在上一篇文章中已经讲述,在这里不在赘述.下面我们介绍图的深度优先搜索遍历(DFS). 深度优先搜索遍历实在访问了顶点vi后,访问vi的一个邻接点vj:访问vj之后,又访问vj的一个邻接点, ...

  8. 深度优先搜索(DFS)与广度优先搜索(BFS)的Java实现

    1.基础部分 在图中实现最基本的操作之一就是搜索从一个指定顶点可以到达哪些顶点,比如从武汉出发的高铁可以到达哪些城市,一些城市可以直达,一些城市不能直达.现在有一份全国高铁模拟图,要从某个城市(顶点) ...

  9. 深度优先搜索(DFS)和广度优先搜索(BFS)

    深度优先搜索(DFS) 广度优先搜索(BFS) 1.介绍 广度优先搜索(BFS)是图的另一种遍历方式,与DFS相对,是以广度优先进行搜索.简言之就是先访问图的顶点,然后广度优先访问其邻接点,然后再依次 ...

随机推荐

  1. 股票市场问题(The Stock Market Problem)

    Question: Let us suppose we have an array whose ith element gives the price of a share on the day i. ...

  2. SelectSort 选择排序

    //SelectSort (( O(n²))) public class TestSelectSort { public int[] selectSortArray(int[] arr){ int m ...

  3. 获取文本区域(textarea)行数【换行获取输入用户名个数】

    需求:输入会员名,一行一个,最多可输入1000个 效果:

  4. wcf简单的创建和运用

    创建一个控制台应用程序,命名为wcftest,并在同一解决方案中添加一个wcf服务应用程序 在wcf项目中会自动生成Service1.svc服务程序文件和IService1.cs契约接口 IServi ...

  5. 使用代码自定义UIView注意一二三

    文/CoderAO(简书作者)原文链接:http://www.jianshu.com/p/68b383b129f9著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 当一撮样式一样的视图在 ...

  6. JavaScripts学习日记——BOM

    IE 3.0 和 Netscape Navigator 3.0 提供了一种特性 - BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作.使用 BOM,开发者可以移动窗口.改变状态栏中的文本以及执 ...

  7. openssl AES加密算法API的使用示例

    openssl为用户提供了丰富的指令,同时也提供了供编程调用的API,本文以使用128位aes算法的ecb模式进行加密和解密验证,如下所示 第一种方法,直接使用aes算法提供的api进行调用,代码如下 ...

  8. 动态绑定GridView数据源遇到问题

    1.GridView中的Button控件响应Command事件的时候出现System.ArgumentException: 回发或回调参数无效, 设置<pages enableEventVali ...

  9. EF执行存储过程(带输出参数)

    1.不含动态sql.带输出参数存储过程调用实例 1.存储过程代码:   2.EF自动生成代码(包括对应ObjectResult的实体模型): 3.调用存储过程代码实例: 总结: ObjectParam ...

  10. 解决linux下oracle进入sqlplus环境中后退键显示^H、上下键无效与ctrl+l无法清屏等问题【weber出品必属精品】

    习惯linux中上下键回退历史输入的人们肯定也希望sqlplus中也能实现相同的效果,可是不幸的是,sqlplus中不提供诸多方便的快捷键,这个时候我们就需要另外安装一个插件来实现这个想法. 这个插件 ...