hdu 1015 Safecracker (dfs)
来源:互联网 发布:淘宝手机视频尺寸大小 编辑:程序博客网 时间:2024/03/28 17:34
题意:输入一个数n,一个字符串,字符串得长度大于等于5小于等于12,且均是大写字母,A 代表 1 B代表 2...
求满足n = A - B ^2 + C^3 - D^4 + E^5 - F^6 ,得5个字母 。
思路:遍历每个字母,用一个数组记录哪些选入字母选入,和选入的次序,因为次序影响结果,由于要找到字典序最大的,先对字符串升序排,然后从字符串最后找,找到的第一个即为答案,用ex变量记录是否存在答案
#include<iostream>#include<string.h>#include<math.h>#include<algorithm> using namespace std;char f[18];int vis[12]={0},sum,ans[18];bool ex=false;int change(char c){return c-'A'+1;}void dfs(int n,int k){int len = strlen(f);if(k==6){sum=pow(ans[1],1)-pow(ans[2],2)+pow(ans[3],3)-pow(ans[4],4)+pow(ans[5],5);if(sum==n){for(int i=1;i<=5;i++){cout<<(char)(ans[i]+'A'-1);}cout<<endl;ex=1;}}else{if(ex)return;for(int i=len-1;i>=0;i--){if(vis[i]==0){vis[i]=1;ans[k]=change(f[i]);dfs(n,k+1);vis[i]=0;}}}}int main(){int n;while(cin>>n&&cin>>f&&n!=0&&f[0]!='E'&&strlen(f)!=3){ex=false;sort(f,f+strlen(f));sum=0;dfs(n,1);if(ex==false){cout<<"no solution"<<endl;}}}
0 0
- hdu 1015 Safecracker dfs()
- hdu 1015Safecracker(dfs)
- HDU 1015 Safecracker 【DFS】
- HDU 1015--Safecracker【DFS】
- hdu 1015 Safecracker【DFS】
- HDU 1015 Safecracker DFS
- HDU 1015 Safecracker (dfs)
- hdu 1015 Safecracker (dfs)
- HDU 1015 Safecracker ( DFS )
- HDU 1015 Safecracker (DFS)
- hdu 1015 Safecracker 暴力dfs
- HDU 1015 Safecracker DFS搜索
- HDU 1015 Safecracker(DFS搜索)
- hdu 1015 Safecracker【dfs 排列组合】
- HDU 1015 Safecracker (DFS)
- HDU 1015 Safecracker(DFS)
- HDOJ(HDU).1015 Safecracker (DFS)
- HDU Safecracker 1015(dfs入门)
- 前端开发面试题
- HW3000应用于无线烟感系统
- Java四种线程池的使用
- C++:argc和argv示例
- linux--9个使用前必须再三小心的Linux命令
- hdu 1015 Safecracker (dfs)
- SuperQQ小项目遇到的问题(2)
- Objective-C中runtime机制的应用
- studio 获取SHA1
- 实体类的使用
- 基础总结篇之一:Activity生命周期
- fork 自 AndroidImageSlider,用 fresco 改写,并增加动态刷新轮播图数据的方法
- 搜狗微信公众号抓取
- mydumper & myloader 使用