HDOJ-1015 Safecracker(DFS)
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)的更多相关文章
- HDU 1015 Safecracker (DFS)
题意:给一个数字n(n<=12000000)和一个字符串s(s<=17),字符串的全是有大写字母组成,字母的大小按照字母表的顺序,比如(A=1,B=2,......Z=26),从该字符串中 ...
- HDOJ.1342 Lotto (DFS)
Lotto [从零开始DFS(0)] 点我挑战题目 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1010 Tempter of ...
- LeetCode Subsets II (DFS)
题意: 给一个集合,有n个可能相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: 看这个就差不多了.LEETCODE SUBSETS (DFS) class Solution { publ ...
- LeetCode Subsets (DFS)
题意: 给一个集合,有n个互不相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: DFS方法:由于集合中的元素是不可能出现相同的,所以不用解决相同的元素而导致重复统计. class Sol ...
- HDU 2553 N皇后问题(dfs)
N皇后问题 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Description 在 ...
- 深搜(DFS)广搜(BFS)详解
图的深搜与广搜 一.介绍: p { margin-bottom: 0.25cm; direction: ltr; line-height: 120%; text-align: justify; orp ...
- 【算法导论】图的深度优先搜索遍历(DFS)
关于图的存储在上一篇文章中已经讲述,在这里不在赘述.下面我们介绍图的深度优先搜索遍历(DFS). 深度优先搜索遍历实在访问了顶点vi后,访问vi的一个邻接点vj:访问vj之后,又访问vj的一个邻接点, ...
- 深度优先搜索(DFS)与广度优先搜索(BFS)的Java实现
1.基础部分 在图中实现最基本的操作之一就是搜索从一个指定顶点可以到达哪些顶点,比如从武汉出发的高铁可以到达哪些城市,一些城市可以直达,一些城市不能直达.现在有一份全国高铁模拟图,要从某个城市(顶点) ...
- 深度优先搜索(DFS)和广度优先搜索(BFS)
深度优先搜索(DFS) 广度优先搜索(BFS) 1.介绍 广度优先搜索(BFS)是图的另一种遍历方式,与DFS相对,是以广度优先进行搜索.简言之就是先访问图的顶点,然后广度优先访问其邻接点,然后再依次 ...
随机推荐
- poj 3666 Making the Grade(dp)
Description A straight dirt road connects two fields on FJ's farm, but it changes elevation more tha ...
- javascript 中 "!function(){}() " 是什么意思?
叹号后面跟函数!function和加号后面跟函数+function都是跟(function(){})();这个函数是一个意思,都是告诉浏览器自动运行这个匿名函数的,因为!+()这些符号的运算符是最高的 ...
- (转)Android’s HTTP Clients
转载自:http://android-developers.blogspot.com/2011/09/androids-http-clients.html Most network-connected ...
- JMeter脚本参数化和断言设置( CSV Data Set Config )
用Badboy录制了Jmeter的脚本,用Jmeter打开后形成了原始的脚本.但是在实际应用中,为了增强脚本的多样性,就要使脚本参数化.这里我以登录为例,参数化用户账号与用户密码. 图1 :原始脚本 ...
- 【转】深入理解篇UIScrollerView
转自:http://www.mamicode.com/info-detail-1144770.html 接下来,我整理一下自己的思路,深入理解 UIScrollView 基本点 : 1 . UIScr ...
- Redis的快照功能
引言: Redis是基于内存的数据库,同时也提供了若干持久化的方案,允许用户把内存中的数据,写入本地文件系统,以备下次重启或者当机之后继续使用.本文将描述如何基于Redis来设置这些功能. 快照的设 ...
- c# 代码执行时间
Stopwatch sw = new Stopwatch(); sw.Start(); Thread.Sleep(2000); sw.Stop(); System.Diagnostics.Trace. ...
- hdu4497 正整数唯一分解定理应用
C - (例题)整数分解,计数 Crawling in process... Crawling failed Time Limit:1000MS Memory Limit:65535KB ...
- linux查看磁盘空间
首先如果需要查看整个磁盘还剩多少空间,可以使用命令: df -h 如果你并不关心磁盘还剩余多少空间,只是需要知道当前的文件夹下的磁盘使用情况,可以使用如下命令: -h 上面使用du --max-dep ...
- 【6】Laravel5.1的migration数据库迁移
查看Laravel5.1的目录 当你配置好数据库后,在命令行执行下边的操作 php artisan migrate 打开数据库会发现,我们的数据库多了四个表,神奇吧! 打开任意一个migration查 ...