hdu1015:给定一串可用序列值,每个字符映射到一个1-26之间的整数,选择五个有序数使得满足 a-b2+c3-d4+e5=target.

 #include<iostream>
#include<cstdio>
#include<string.h>
#include<algorithm>
#include<map>
using namespace std;
int target;
char s[];
int vis[];
map<char,int>mp;
char ans[],ch[];
int num[];
int len;
bool fin(int *a)
{
return a[]-a[]*a[]+a[]*a[]*a[]-a[]*a[]*a[]*a[]+a[]*a[]*a[]*a[]*a[]==target;
}
void init()
{
memset(vis,,sizeof(vis));
memset(ans,'\0',sizeof(ans));//空串字典序最小
memset(ch,'\0',sizeof(ch));
memset(num,,sizeof(num));
char c='A';
for(int i=;i<=;i++)
mp[c++]=i; //构建映射关系
} void dfs(int cur)//当前处理的位数
{
if(cur==)
{
if(fin(num)&&strcmp(ch,ans)>)
strcpy(ans,ch);
return;
}
for(int i=;i<len;i++)
{
if(!vis[mp[s[i]]])
{
vis[mp[s[i]]]=;
ch[cur]=s[i];//存储字符s[i]以便与ans比较
num[cur]=mp[s[i]]; //转化为数字,以便判断是否结束
dfs(cur+);
vis[mp[s[i]]]=;
}
}
return;
}
int main()
{ while(scanf("%d %s",&target,&s)==&&!(target==&&strcmp(s,"END")==))
{
init();
// cout<<"target:"<<target<<" "<<s<<endl;
len=strlen(s);
sort(s,s+len);
dfs();
if(!strcmp(ans,""))cout<<"no solution"<<endl;
else cout<<ans<<endl;
}
}

hdu1016 n个数的全排列构成圈使得相邻两数和为质数且第一个数是1。先预处理出40以内的质数,然后深搜。

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n;
int a[];
int isp[];
int vis[];
bool isprime(int x)
{
if(x<)return false;
for(int i=;i*i<=x;i++)
{
if(x%i==)
return false;
}
return true;
} void dfs(int cur)//搜索深度
{
int i;
if(cur==n&&isp[(a[cur-]+a[])])//递归结束条件
{
for( i=;i<n-;i++)
printf("%d ",a[i]);
printf("%d\n",a[n-]);
}
else for( i=;i<=n;i++)
{
if(!vis[i]&&isp[i+a[cur-]])
{
a[cur]=i;
vis[i]=;
dfs(cur+);
vis[i]=; //状态回复
}
}
} int main()
{
for(int i=;i<=;i++)isp[i]=isprime(i);
int t=;
while(scanf("%d",&n)!=EOF)
{
memset(vis,,sizeof(vis));
printf("Case %d:\n",t);
a[]=;
dfs();
printf("\n");
t++;
}
}

hdu1015+hdu1016 都是十分钟以内的深搜题的更多相关文章

  1. PAT L2-016 愿天下有情人都是失散多年的兄妹(深搜)

    呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚? 输入格式: 输入 ...

  2. iOS二进制方案真实落地经验(30分钟降低到10分钟以内)

    iOS二进制方案真实落地经验(30分钟降低到10分钟以内) 我们做iOS二进制化断断续续尝试了一年多了,来来回回换了三个架构师去尝试落地,今日完全落地,在此做个总结 背景 工程基于cocoapod的组 ...

  3. 【NLP】十分钟快览自然语言处理学习总结

    十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文 ...

  4. 十分钟了解分布式计算:GraphX

    GraphX原型论文 GraphX是Spark中用于图(e.g., Web-Graphs and Social Networks)和图并行计算(e.g., PageRank and Collabora ...

  5. 快速入门:十分钟学会Python

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

  6. 十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))

    十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less)) 注:本文为翻译文章,因翻译水平有限,难免有缺漏不足之处,可查看原文. 我们知道写css代码是非常枯燥的 ...

  7. 如何在十分钟内插入1亿条记录到Oracle数据库?

    这里提供一种方法,使用 APPEND 提示,使得十分钟内插入上亿数据成为可能. -- Create table create table TMP_TEST_CHAS_LEE ( f01 VARCHAR ...

  8. 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)

    [项目管理和构建]十分钟教程,eclipse配置maven + 创建maven项目(三) 上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合 ...

  9. Python十分钟学会

    初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...

随机推荐

  1. canvas基本

    基本 支持ie 9+,firefox,opera,chrome,safari html: <canvas id="fir_canvas" width="400&qu ...

  2. Flask向模板中JS传值简便方式

    后台传值: return render_template('statistics/numberofuserlogin/login_number.html', result_json = json.du ...

  3. [人工智能]NumPy基础

    理解NumPy 本文主要介绍NumPy的基础知识,NumPy是一个功能强大的Python库,允许更高级的数据操作和数学计算. 什么是NumPy NumPy,来源自两个单词:Numerical和Pyth ...

  4. Android apk签名详解——AS签名、获取签名信息、系统签名、命令行签名

    Apk签名,每一个Android开发者都不陌生.它就是对我们的apk加了一个校验参数,防止apk被掉包.一开始做Android开发,就接触到了apk签名:后来在微信开放平台.高德地图等平台注册时,需要 ...

  5. 关于RN的热更新

    写点关于RN的热更新和RN版本升级后的强制更新.以及优化白屏问题 在APPDelegate中加载RN,一般的加载方式是:RCTRootView *rootView= [[RCTRootView all ...

  6. HTML笔记03------cookie

    新浪布局 初始布局代码: div.header+(div.container>(div.left+div.right))+div.footer ---------- .header{height ...

  7. JavaScript学习总结之数组常用的方法和属性

    先点赞后关注,防止会迷路寄语:没有一个冬天不会过去,没有一个春天不会到来. 前言数组常用的属性和方法常用属性返回数组的大小常用方法栈方法队列方法重排序方法操作方法转换方法迭代方法归并方法总结结尾 前言 ...

  8. P1102 A-B 数对

    P1102题库链接:https://www.luogu.org/problem/P1102 难度:普及- 算法标签:模拟,数论,排序,HASH,概率论,二分查找 1.朴素 O(n^2) 得分76 将输 ...

  9. Windows 10 右键 在此处打开 CMD

    1. 打开注册表 # 1. 使用快捷键打开 “运行” # win + r # 2. 在 “运行” 中输入 # regedit # 3. 回车 2. 创建与设置 OpenCMDHere # 1. 切换到 ...

  10. java反序列化-ysoserial-调试分析总结篇(7)

    前言: CommonsCollections7外层也是一条新的构造链,外层由hashtable的readObject进入,这条构造链挺有意思,因为用到了hash碰撞 yso构造分析: 首先构造进行rc ...