http://acm.hdu.edu.cn/showproblem.php?pid=1015
/
题意;
从所给的一串字符串中选出5个字母假如是(A B C D E)使得A-B^2+C^3-D^4+E^5等于前面的数字
如果有多种答案,就输出字典序最大的五个
已知A=1 B=2 C=3......................
/

include

include

include

int tarNum;
char secret[25];//存放输入的字符串
int num[5];//存放的是选出来的5个字符所对应的数字
int charNum[26];//存放输入某一字符的个数,下标代表哪种字符,charNum[i]代表这种字符有多少个;
int power(int x,int n)//求x的n次方
{
int sum=1;
for(int i=1; i<=n; i++)
sum=sum*x;
return sum;
}
int dfs(int n)
{
if(n==5)
{
int sum=power(num[0],1)-power(num[1],2)+power(num[2],3)-power(num[3],4)+power(num[4],5);
if(sum==tarNum)return 1;//能找到返回1
return 0;//否则返回0
}
for(int i=25; i>=0; i--)//倒着找找到的第一个就是字典序最大的,找到之后就不用在找了
{
if(charNum[i])//如果这个字符没有用完 就继续使用
{
charNum[i]--;//当前使用过一次
num[n]=i+1;//如果不加一那么25代表的就是z了,但是26代表的是z
if(dfs(n+1))//如果搜到就返回不在搜了,因为你是倒着搜的,搜到的第一个就是最大的
return 1;
charNum[i]++;//记得还原,以便下一组用到
}
}
return 0;
}
int main()
{
while(scanf("%d %s",&tarNum,secret))
{
if(tarNum==0&&strcmp("END",secret)==0)break;
int length=strlen(secret);
memset(num,0,sizeof(num));
memset(charNum,0,sizeof(charNum));
for(int i=0; i<length; i++)//假如输入 ABBCCDDD
charNum[secret[i]-'A']++;//charNum[0]=1 charNum[1]=2 charNum[2]=2 charNum[3]=3
if(dfs(0))
{
for(int i=0; i<5; i++)
{
printf("%c",num[i]-1+'A');
}
printf("\n");
}
else printf("no solution\n");
}
return 0;
}

Safecracker(搜索)的更多相关文章

  1. Safecracker 分类: HDU 搜索 2015-06-25 21:12 12人阅读 评论(0) 收藏

    Safecracker Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...

  2. HDU 1015 Safecracker(第一次用了搜索去遍历超时,第二次用for循环能够了,思路一样的)

    Safecracker Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total S ...

  3. hdu - 1010 Tempter of the Bone (dfs+奇偶性剪枝) && hdu-1015 Safecracker(简单搜索)

    http://acm.hdu.edu.cn/showproblem.php?pid=1010 这题就是问能不能在t时刻走到门口,不能用bfs的原因大概是可能不一定是最短路路径吧. 但是这题要过除了细心 ...

  4. HDOJ(HDU).1015 Safecracker (DFS)

    HDOJ(HDU).1015 Safecracker [从零开始DFS(2)] 从零开始DFS HDOJ.1342 Lotto [从零开始DFS(0)] - DFS思想与框架/双重DFS HDOJ.1 ...

  5. HDU 1015 Safecracker【数值型DFS】

    Safecracker Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total ...

  6. SQLSERVER走起微信公众帐号已经开通搜狗微信搜索

    SQLSERVER走起微信公众帐号已经开通搜狗微信搜索 请打开下面链接 http://weixin.sogou.com/gzh?openid=oIWsFt-hiIb_oYqQHaBMoNwRB2wM ...

  7. solr_架构案例【京东站内搜索】(附程序源代码)

    注意事项:首先要保证部署solr服务的Tomcat容器和检索solr服务中数据的Tomcat容器,它们的端口号不能发生冲突,否则web程序是不可能运行起来的. 一:solr服务的端口号.我这里的sol ...

  8. SQLServer地址搜索性能优化例子

    这是一个很久以前的例子,现在在整理资料时无意发现,就拿出来再改写分享. 1.需求 1.1 基本需求: 根据输入的地址关键字,搜索出完整的地址路径,耗时要控制在几十毫秒内. 1.2 数据库地址表结构和数 ...

  9. HTML5轻松实现搜索框提示文字点击消失---及placeholder颜色的设置

    在做搜索框的时候无意间发现html5的input里有个placeholder属性能轻松实现提示文字点击消失功能,之前还傻傻的在用js来实现类似功能... 示例 <form action=&quo ...

随机推荐

  1. ab安装和使用

    apache bench(专门用于 HTTP Server .单url).win8: 下载地址:http://httpd.apache.org/download.cgi#apache24 安装apac ...

  2. Windows的计划任务

    阅读目录 一:什么是Windows的计划任务? 二:如何设置计划任务 三:高级设置计划任务 一:什么是Windows的计划任务? 在日常的工作中,我们都有一些固定的或临时性的工作,而每次在爱机前一坐, ...

  3. linux创建用户

    创建用户   sudo adduser xxx 删除用户   sudo userdel xxx 删除用户和目录  sudo userdel -r xxx

  4. memcached和mongodb 在windows下安装

    要在新机器上安装memcached和mongodb服务,折腾了一天,终于把这两个服务在windows下跑起来了. memcached主要参考http://www.rootop.org/pages/27 ...

  5. Express在windows IIS上部署详解

    最近公司在用Express+angularjs+wcf开发系统,让我在windows上部署系统,遇到不少问题,不过最后还是解决了,在IIS上部署系统, 首先windows需安装以下软件: 1.node ...

  6. iOS中MVVM的架构设计与团队协作

    对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架,之前用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与传统的MVC可谓是极为相似,也可以说是兄弟关系,也就是一家人 ...

  7. Asp.Net 注册 邮箱激活

    数据库 表的设计 State为用户状态  0为禁用  1为可用  默认为0,下面有个UserGUID,这个字段将来用于激活账户 首先你要写一个表单,验证码神马的,这个我就不写了..直接写处理的 代码在 ...

  8. C蛮的全栈之路-序章 技术栈选择与全栈工程师

    目录 C蛮的全栈之路-序章 技术栈选择与全栈工程师C蛮的全栈之路-node篇(一) 环境布置C蛮的全栈之路-node篇(二) 实战一:自动发博客 博主背景 985院校毕业,至今十年C++开发工作经验, ...

  9. SGU 150.Mr. Beetle II

    非常烦人的题,思路比较简单,十分容易出错,细节非常重要. 从四个不同的行走方向讨论经过的每一个格子. code: #include <iostream> #include <util ...

  10. 【POJ2482】【线段树】Stars in Your Window

    Description Fleeting time does not blur my memory of you. Can it really be 4 years since I first saw ...