今天是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. 2 duplicate symbols for architecture“文件冲突”

      我在配置第三方库拷贝示例文件中的库文件到新项目完成相关配置之后报下面的错误:   错误的原因是在解决问题之后发现的(第三方库的项目示例demo中的 要拷贝到自己项目中的库  并不需要全部添加到自己 ...

  2. java获得Tomcat服务器的根目录下的内容

    File f2=new File(System.getProperty("catalina.home")+ File.separator+"webapps"+F ...

  3. HDU 1016 S-Nim ----SG求值

    S-Nim Time Limit : 5000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submiss ...

  4. C# SpinWait

    其实SpinWait的code 非常简单,以前看过很多遍,但是从来都没有整理过,整理也是再次学习吧. 我们先看看SpinWait的一些评论或者注意点吧:如果等待某个条件满足需要的时间很短,而且不希望发 ...

  5. Python手写模拟单向链表对象,栈对象和树

    单向链表: class error(Exception): def __init__(self,msg): super(error,self).__init__() self.msg=msg def ...

  6. 177. [USACO Jan07] 有限制的素数

    177. [USACO Jan07] ★   输入文件:qprime.in   输出文件:qprime.out   简单对比 时间限制:1 s   内存限制:128 MB Farmer John 开始 ...

  7. 64位版本的Windows不兼容,masm无法运行解决方法

    问题: 在Window64位运行不了的masm 解决方法: 1.下载DosBox0.74(当前最新): 2.安装后运行,运行后出现控制台: 3.在DosBox的控制台下运行 Mount x: x:/m ...

  8. $.extend 的相关用法

    1.1 $.extend(result,item1,item2…..) 将所有的参数项都合并result中,返回result,会破坏result的结构. 1.2 $.extend({},item1,i ...

  9. git 上传文件到仓库上提示:origin does not to be a git repository

    最近上传代码到GitHub的时候,当我输入 git push -u origin master的时候,它提示: origin does not to be a git repository 在网上找到 ...

  10. Android微信支付SDK开发

    一.准备工作 1.开发平台及SDK下载 微信开放平台 https://open.weixin.qq.com 下载SDK 微信支付Demo下载 http://pay.weixin.qq.com/wiki ...