今天是2018.5.24,loli给我们说要考搜索,本来以为是给初学者们考的就没准备,然而老师说我们也要考。(2018.6.29补:这次的简单测试与之后变得非常难的几次搜索测试形成了鲜明的对比,从而更深刻的说明了搜索的难度,使人印象深刻)

  T1:N皇后问题

  。。。这个没什么好说的,真的就是普通的N皇后问题,输出方案(n<=10),本来想用位运算保存行和斜线,但是怕在简单题上写炸于是就写了很朴素的做法。

  

# include <cstdio>
# include <iostream>
# include <cstring> using namespace std; int n,A=;
bool a[];
bool b[];
bool c[];
int ans[]; void write()
{
A++;
for (int i=;i<n;i++)
printf("%d ",ans[i]);
printf("%d\n",ans[n]);
} void dfs(int x)
{
if(x==n+)
{
write();
return ;
}
for (int i=;i<=n;i++)
{
if(a[i]) continue;
if(b[i+x]) continue;
if(c[i-x+n]) continue;
a[i]=true;
b[i+x]=true;
c[i-x+n]=true;
ans[x]=i;
dfs(x+);
a[i]=false;
b[i+x]=false;
c[i-x+n]=false;
}
} int main()
{
freopen("Queen.in","r",stdin);
freopen("Queen.out","w",stdout); scanf("%d",&n);
dfs();
if(A==) printf("no solute!\n"); fclose(stdin);
fclose(stdout);
return ;
}

N皇后问题

   T2:有重复元素的排列问题

  和luogu上同名题目一模一样。然而考试时我问老师元素是不是只有'a'-'z', 他说不一定。。。那也好办,就按ascii码存一下,最大到300总够了吧,然而会很慢,于是。。。再记录一下最大最小值就OK啦,虽然还可以离散化一下,然而对于这道题不用。最神的是考完发了评测包发现数据中并没有任何奇怪的东西,就是只有'a'-'z'。当然这道题wzx还有另一种做法。。。next_permutation!然而loli测试不开O2所以悲哀的T了一个点,如果开O2的话这个函数大概是很快的。

# include <cstdio>
# include <iostream>
# include <cstring>
# define R register int using namespace std; int tot=,n,h=,Max=,Min=;
char c;
int vis[];
char ans[]; void write()
{
tot++;
for (int i=;i<=n;i++)
printf("%c",ans[i]);
printf("\n");
return ;
} void dfs(int x)
{
if(x==n+)
{
write();
return ;
}
for (R i=Min;i<=Max;i++)
{
if(vis[i]==) continue;
vis[i]--;
ans[x]=(char)i;
dfs(x+);
vis[i]++;
} } int main()
{
scanf("%d",&n);
for (R i=;i<=n;i++)
{
c=getchar();
while (c==' '||c=='\n'||c=='\r') c=getchar();
Min=min(Min,(int)c);
Max=max(Max,(int)c);
vis[(int)c]++;
}
dfs();
printf("%d\n",tot);
return ;
}

有重复元素的排列问题

  T3:装箱问题

  

  虽然是考搜索,可是这个题显然可以dp。  

# include <cstdio>
# include <iostream>
# include <cstring>
# define R register int using namespace std; int ans=,n,c;
int w[];
bool dp[]; int main()
{
scanf("%d%d",&n,&c);
for (R i=;i<=n;i++)
scanf("%d",&w[i]);
dp[]=true;
for (R i=;i<=n;i++)
for (R j=c;j>=w[i];j--)
dp[j]|=dp[j-w[i]];
for (R i=;i<=c;i++)
if(dp[i]) ans=i;
printf("%d\n",ans);
return ;
}

装箱问题

  T4:字符序列

  

# include <cstdio>
# include <iostream>
# include <cstring> using namespace std; int n,tot=;
int ans[]; void dfs(int x)
{
if(x==n+)
{
tot++;
return ;
}
for (int i=;i<=;i++)
{
if(x>=&&ans[x-]==ans[x-]&&ans[x-]==i) continue;
ans[x]=i;
dfs(x+);
}
return ;
} int main()
{
scanf("%d",&n);
dfs();
printf("%d\n",tot);
return ;
}

字符序列

  T5:图的m着色问题

  

  按照1-n搜索,每搜一个判一次可行性,竟然能过。。。事实上一个100的环是满足数据要求的,然而std也跑不了。  

# include <cstdio>
# include <iostream>
# include <cstring>
# define R register int using namespace std; const int maxn=; struct edge
{
int too,nex;
}g[maxn*maxn]; int tot=,col[maxn],h=,n,k,m,u,v,firs[maxn];
bool G[maxn][maxn];
bool vis[maxn]; void add(int u,int v)
{
g[++h].too=v;
g[h].nex=firs[u];
firs[u]=h;
} bool check(int x,int colo)
{
int j;
for (R i=firs[x];i;i=g[i].nex)
{
j=g[i].too;
if(vis[j]&&col[j]==colo) return false;
}
return true;
} void dfs(int x)
{
if(x==n+)
{
tot++;
return ;
}
for (int i=;i<=m;i++)
{
if(!check(x,i)) continue;
vis[x]=true;
col[x]=i;
dfs(x+);
vis[x]=false;
}
} int main()
{
scanf("%d%d%d",&n,&k,&m);
for (R i=;i<=k;i++)
{
scanf("%d%d",&u,&v);
if(G[u][v]) continue;
G[v][u]=G[u][v]=true;
add(u,v);
add(v,u);
}
dfs();
printf("%d\n",tot);
return ;
}

图的m着色问题

  因为有点感冒,出分前立了一个flag说如果没上400就趁机回家,然而上了...那也要回家!这可能是我第一次,也是最后一次AK。

---shzr

loli的测试——搜索的更多相关文章

  1. loli的测试-2018.12.9

    模拟赛-2018.12.9 这是NOIP之后第一次模拟赛...但是考的比较悲惨. 非常喜欢写考试总结,不知道为什么... T1:https://www.luogu.org/problemnew/sho ...

  2. web功能测试之表单、搜索测试

    初入职场接触功能测试老是碰到以下情况不知道怎么写测试用例: 一个界面很多搜索条件怎么写用例?下拉框测试如何考虑测试点?上传要考虑哪些验证点?...... 所以这篇主要是整理关于web测试之表单.搜索测 ...

  3. xunsearch搜索测试

    1.导入测试数据 cd $prefix/sdk/php util/Indexer.php --source=csv --clean demo 然后出现 初始化数据源 ... csv WARNING: ...

  4. Apache Lucene(全文检索引擎)—搜索

    目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://gith ...

  5. 42、lucene和机器学习进行全文搜索,并排序

    package com.lucene.test; import java.io.BufferedInputStream; import java.io.File; import java.io.Fil ...

  6. coreseek实战(一):windows下coreseek的安装与测试

    coreseek实战(一):windows下coreseek的安装与测试 网上关于 coreseek 在 windows 下安装与使用的教程有很多,官方也有详细的教程,这里我也只是按着官方提供的教程详 ...

  7. SharePoint 2013中规划企业搜索体系结构

    摘要:了解如何规划小型.中型或大型企业搜索体系结构. 设置企业搜索体系结构之前,需要仔细规划很多事项.我们将逐步帮助您规划小型.中型或大型企业搜索体系结构. 您是否熟悉 SharePoint 2013 ...

  8. Lucene.Net 2.3.1开发介绍 —— 四、搜索(二)

    原文:Lucene.Net 2.3.1开发介绍 -- 四.搜索(二) 4.3 表达式用户搜索,只会输入一个或几个词,也可能是一句话.输入的语句是如何变成搜索条件的上一篇已经略有提及. 4.3.1 观察 ...

  9. 加速 lucene 的搜索速度 ImproveSearchingSpeed

    * Be sure you really need to speed things up. Many of the ideas here are simple to try, but others w ...

随机推荐

  1. SpringMVC中数据转换

    SpringMVC中接收到的数据都是String形式,然后再根据反射机制将String转换成对应的类型.如果此时想接收一个Date类型,那么我们可以定义一个转换器来完成. 例如,我们有下面的Emp类: ...

  2. MySQL千万级大表优化解决方案

    MySQL千万级大表优化解决方案 非原创,纯属记录一下. 背景 无意间看到了这篇文章,作者写的很棒,于是乎,本人自私一把,把干货保存下来.:-) 问题概述 使用阿里云rds for MySQL数据库( ...

  3. 最全Vue开发环境搭建

    前言 一直想去学Vue,不过一直找不到一个契机.然公司手机端用到了跨平台开发apicloud,里边涉及到Vue组件化开发,例如header和footer的封装,以及apicloud自定义的frame等 ...

  4. 关于JqueryCheck选中获取数据

    关于Jquery获取Check选中数据 首先还是得引用Jquery的包,然后新增3个CheckBox <div> <input type="checkbox" n ...

  5. php Closure::bind的用法(转)

    官方文档:Closure 类 原文:php中怎么理解Closure的bind和bindTo bind是bindTo的静态版本,因此只说bind吧.(还不是太了解为什么要弄出两个版本) 官方文档: 复制 ...

  6. AJAX跨域访问(从Tomcat8到Apache/Nginx/Spring Boot)

    1.在Tomcat的Root目录下放入如下的文件 apache-tomcat-8.0.12X64\webapps\ROOT clientaccesspolicy.xml文件 <?xml vers ...

  7. Application Context的设计

    基本上每一个应用程序都会有一个自己的Application,并让它继承自系统的Application类,然后在自己的Application类中去封装一些通用的操作.其实这并不是Google所推荐的一种 ...

  8. Nested Prefab Mode 嵌套预制体 保存问题 Dirty

    Unity2018.3 Nested Prefab Mode 嵌套预制体 Unity2018.3开始,新增了一个Prefab Mode,俗称嵌套预制体,在Prefab里套Prefab.实际应用中多少会 ...

  9. java基础(十) 数组类型

    1. 数组类简介   在java中,数组也是一种引用类型,即是一种类. 我们来看一个例子,理解一下数组类: public static void main(String[] args) { Class ...

  10. Django Redis存储session会话

    通常redis都是用来保存session.短信验证码.图片验证码等数据. 在django上使用redis,先要安装一个包: pip install django-redis==4.8.0(我用的dja ...