hdu1015+hdu1016 都是十分钟以内的深搜题
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 都是十分钟以内的深搜题的更多相关文章
- PAT L2-016 愿天下有情人都是失散多年的兄妹(深搜)
呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚? 输入格式: 输入 ...
- iOS二进制方案真实落地经验(30分钟降低到10分钟以内)
iOS二进制方案真实落地经验(30分钟降低到10分钟以内) 我们做iOS二进制化断断续续尝试了一年多了,来来回回换了三个架构师去尝试落地,今日完全落地,在此做个总结 背景 工程基于cocoapod的组 ...
- 【NLP】十分钟快览自然语言处理学习总结
十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文 ...
- 十分钟了解分布式计算:GraphX
GraphX原型论文 GraphX是Spark中用于图(e.g., Web-Graphs and Social Networks)和图并行计算(e.g., PageRank and Collabora ...
- 快速入门:十分钟学会Python
初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...
- 十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less))
十分钟入门less(翻译自:Learn lESS in 10 Minutes(or less)) 注:本文为翻译文章,因翻译水平有限,难免有缺漏不足之处,可查看原文. 我们知道写css代码是非常枯燥的 ...
- 如何在十分钟内插入1亿条记录到Oracle数据库?
这里提供一种方法,使用 APPEND 提示,使得十分钟内插入上亿数据成为可能. -- Create table create table TMP_TEST_CHAS_LEE ( f01 VARCHAR ...
- 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)
[项目管理和构建]十分钟教程,eclipse配置maven + 创建maven项目(三) 上篇博文中我们介绍了maven下载.安装和配置(二),这篇博文我们配置一下eclipse,将它和maven结合 ...
- Python十分钟学会
初试牛刀 假设你希望学习Python这门语言,却苦于找不到一个简短而全面的入门教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手册(Cheat ...
随机推荐
- 一致性哈希算法(consistent hashing)PHP实现
一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用的简单哈希 ...
- memcached单点登录配置
域名 www.lxy.comblog.lxy.comnews.lxy.comshop.lxy.com php配置 session.save_handler = memcache session写mem ...
- C++中cin的输入分隔符问题及相关
1.C/C++中的类型转换函数(区分类中的类型转换构造函数): 头文件:C中stdlib.h C++中cstdlib atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将 ...
- Vue-API之全局配置
API 全局配置 Vue.config 是一个对象,包含 Vue 的全局配置. 源码位置:util/config.js 搜索config 可以找到其源码地址,其中声明了config的类型和默认参数 下 ...
- 吐槽苹果开放接口のappleid登陆
这里吐槽一下苹果的开发文档,一切源于前段时间,公司的产品app(某知名资讯app)要接入苹果登陆(ios13发布以来,apple就流氓要求新上线的app,如果有第三方登陆的话,必须要接入appleid ...
- 曹工说Spring Boot源码(22)-- 你说我Spring Aop依赖AspectJ,我依赖它什么了
写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...
- text-decoration与color属性
text-decoration属性值 如果指定某个标签的text-decoration属性时,希望为其添加多个样式(比如:上划线.下划线.删除线),那么需要把所有的值合并到一个规则中才会生效 p{ t ...
- EventEmitter:从命令式 JavaScript class 到声明函数式的华丽转身
新书终于截稿,今天稍有空闲,为大家奉献一篇关于 JavaScript 语言风格的文章,主角是函数声明式. 灵活的 JavaScript 及其 multiparadigm 相信"函数式&quo ...
- 报错: raise ImproperlyConfigured('mysqlclient 1.3.13 or newer is required; you have %s.' % Database.__version__)
Django2.0同步Mysql数据库时出现的问题 执行 python manage.py makemigrations 报错 # 报错位置 File "G:\python\lib\site ...
- JavaScript实现集合与字典
JavaScript实现集合与字典 一.集合结构 1.1.简介 集合比较常见的实现方式是哈希表,这里使用JavaScript的Object类进行封装. 集合通常是由一组无序的.不能重复的元素构成. 数 ...