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 ...
随机推荐
- for循环的应用
for循环的应用:迭代法,穷举法. 一.迭代法:(有一定规律) 每次循环都是从上次运算结果中获得数据,本次运算的结果都是要为下次运算做准备. 例:1.100以内所有数的和. int sum = 0;f ...
- 阿里云Confluence无法发送邮件修复
阿里云屏蔽外网的25端口,防止发送垃圾邮件,所以导致阿里云上的ecs无法发送邮箱 采用腾讯邮箱,端口25和465都试了好几遍,最终改成587即可 参考https://blog.csdn.net/qq_ ...
- Object.defineProperty注意事项
Object.defineProperty() 方法设置属性时,属性不能同时声明访问器属性( set 和 get )和 writable 或者 value 属性. 意思就是,某个属性设置了 writa ...
- json_encode在设计api时需要注意的问题
1. 在设计api时我们经常会使用关联数组,例如:我要返回给客户端主题信息和主题包列表 原始数组格式 $arr = array( 100=>array('themeName'=>'a',' ...
- JAVA中对list map根据map某个key值进行排序
package test; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; ...
- iOS Swift 开发语言之初接触,纯代码创建UIView,UITableView,UICollectionView
1. 初始化Label设置AttributeString override func viewDidLoad() { let label = UILabel(frame:CGRect(x:,y:,wi ...
- Asp.Net Core Filter 深入浅出的那些事-AOP
一.前言 在分享ASP.NET Core Filter 使用之前,先来谈谈AOP,什么是AOP 呢? AOP全称Aspect Oriented Programming意为面向切面编程,也叫做面向方法编 ...
- VueX状态管理器 的应用
VueX状态管理器 cnpm i vuex axios -S 1 创建Vuex 仓库 import Vue from 'vue' import Vuex from 'vuex' vue.use(Vue ...
- TP5使用Redis处理电商秒杀
本篇文章介绍了ThinkPHP使用Redis实现电商秒杀的处理方法,具有一定的参考价值,希望对学习ThinkPHP的朋友有帮助! TP5使用Redis处理电商秒杀 1.首先在TP5中创建抢购活动所需要 ...
- xpath提取标签和内容
转:https://segmentfault.com/q/1010000012110138/a-1020000012113020 <div> <table> <tr> ...