今天是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. IBatis项目中com.ibatis.common.xml.NodeletException的解决方案

    一 现象: 今天在写IBatis项目是总是提示我有如下异常: com.ibatis.common.xml.NodeletException java.util.NoSuchElementExcepti ...

  2. js小练习

    1.题目:某班的成绩出来了,现在老师要把班级的成绩打印出来. 效果如下:xxx年xx月x日  星期x--班级总分为:81 格式要求:1.显示打印的日期.格式为类似“xxxx年xx月xx日 星期x”的当 ...

  3. HTML5 Form Data 对象的使用

    HTML5 Form Data 对象的使用  MDN: https://developer.mozilla.org/zh-CN/docs/Web/Guide/Using_FormData_Object ...

  4. LINUX创建LVM、PV、VG、LV ORACLE服务器方案划分

    为裸盘分区 查看硬盘分区 fdisk -l 进入分区管理 fdisk /dev/sda 创建PV 创建PV pvcreate /dev/sda1 pvcreate /dev/sdb1 pvcreate ...

  5. LOJ#6463 AK YOI 树分治+线段树合并

    传送门 既然是树上路径统计问题,不难想到要使用树分治,这里以点分治为例 由点分治的性质,每层只需要考虑经过重心的路径 因为需要维护路径长度在一定范围内的最大权值和,所以要用一个数据结构维护一下到根节点 ...

  6. react知识点汇总

    ①uncontrolComponent & controlComponent If your form is incredibly simple in terms of UI feedback ...

  7. html基础-a标签-img标签-绝对/相对路径(3)

    美好的星期六,今天多写一点,争取早点写js这个有点小无聊. 一.先来讲点网页之间的跳转 (1).<a href=""></a>  href="这里 ...

  8. 数学建模三剑客MSN

    前言 不管是不是巴萨的球迷,只要你喜欢足球,就一定听说过梅西(Messi).苏亚雷斯(Suarez)和内马尔(Neymar)这个MSN组合.在众多的数学建模辅助工具中,也有一个犀利无比的MSN组合,他 ...

  9. 网络I/O模型--03非阻塞模式(ServerSocket与Socket的超时处理)--解除accept()、 read()方法阻塞

    对于阻塞方式的一种改进是在应用程序层面上将 “一直等待 ”的状态主动打开: 这种模式下,应用程序的线程不再一直等待操作系统的 I/O状态,而是在等待一段时间后就解除阻塞.如果没有得到想要的结果,则再次 ...

  10. 报表在IBM AIX系统下resin部署

     报表是用java开发的,具有良好的跨平台性.不仅可以应用在windows.linux.操作系统,还可以应用在AIX等等的unix操作系统.在各种操作系统上部署过程有一些差别.下面说一下在AIX操 ...