HDOJ 1015 Safecracker
来源:互联网 发布:php 面向接口编程 编辑:程序博客网 时间:2024/05/20 06:53
题意:
给你一堆字符和一个数target。要你根据题目的
要求找出符合条件的5个字符v, w, x,y,和z,
要求满足 v - w^2+ x^3 - y^4 + z^5 = target。
分析:
暴力搜索一下,就可以找到了。只是要注意细节。
dfs的构造上,参数中要有当前已经找到的字符串,
已经找了第几个字母了,即搜到的深度depth。
len可要可不要定义成全局的也行。然后记录一下
已经找到了的字母,防止重复搜索。
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int visit[12],flag,target;int mult(char*ans){ int cnt=0,temp=1,op=1; for(int i=0;i<5;i++) { for(int j=1;j<=i+1;j++) { temp*=(ans[i]-'A'+1);//细节,注意用的是askii码值来算的 } cnt+=temp*op; op*=(-1); temp=1; } return cnt;}void dfs(char *s,char *ans,int depth,int len){ if(depth==5)//定义搜索终止情况,每找到5个都要计算一下看合不合适 { if(mult(ans)==target) { flag=1; } return; } for(int i=0;i<len;i++) { if(!visit[i])//如果当前字母不是已经找过了的字母,就可以搜索 { ans[depth]=s[i]; visit[i]=1; dfs(s,ans,depth+1,len); if(flag) return; visit[i]=0; } }}bool cmp(char a,char b){ return a>b;}int main(){ char str[13],ans[16]; // freopen("in.txt","r",stdin); while((scanf("%d%s",&target,str)!=EOF)&&!(target==0&&strcmp(str,"END")==0)) { memset(visit,0,sizeof(visit)); int len=strlen(str); sort(str,str+len,cmp); flag=0; dfs(str,ans,0,strlen(str)); if(flag==1) { for(int i=0;i<5;i++) printf("%c",ans[i]); printf("\n"); } else printf("no solution\n"); } return 0;}
0 0
- HDOJ 1015 Safecracker
- HDOJ 1015 Safecracker
- hdu/hdoj 1015 Safecracker
- HDOJ 1015 Safecracker
- HDOJ 1015 Safecracker
- hdoj 1015 Safecracker 【dfs】
- hdoj 1015 Safecracker
- HDOJ 1015 Safecracker-DFS
- hdoj 1015 Safecracker【DFS】
- hdoj 1015 Safecracker 【DFS】
- HDOJ-1015Safecracker(DFS)
- HDOJ HDU 1015 Safecracker
- hdoj 1015 Safecracker
- HDOJ 1015 Safecracker
- HDOJ 1015 Safecracker 简单搜索
- hdoj 1015 Safecracker---盗窃贼
- HDOJ 1015 Safecracker(DFS)
- HDOJ/HDU 1015 Safecracker(深搜)
- git clone 遇到Protocol https not supported or disabled in libcurl,何解
- 每周精选编程技术文章与资源_9月29日至10月05日
- 缩进!!全篇用同样的缩进!!
- Android开发之GitHub开源下拉刷新Android-PullToRefresh使用总结
- HDU 5060 圆柱和圆求交
- HDOJ 1015 Safecracker
- 基础算法--顺推法
- Java抽象类与接口的区别
- c语言中没有string类型变量怎么办?没有bool怎么办?
- nyoj 610 定长覆盖 && 贪心问题系列
- HDU 4781 Assignment For Princess(YY乱搞)
- hdu 2167(状态压缩dp)
- 计算机基础知识(一)——进制转换
- TextView 添加边框