loli的测试——搜索
今天是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的测试——搜索的更多相关文章
- loli的测试-2018.12.9
模拟赛-2018.12.9 这是NOIP之后第一次模拟赛...但是考的比较悲惨. 非常喜欢写考试总结,不知道为什么... T1:https://www.luogu.org/problemnew/sho ...
- web功能测试之表单、搜索测试
初入职场接触功能测试老是碰到以下情况不知道怎么写测试用例: 一个界面很多搜索条件怎么写用例?下拉框测试如何考虑测试点?上传要考虑哪些验证点?...... 所以这篇主要是整理关于web测试之表单.搜索测 ...
- xunsearch搜索测试
1.导入测试数据 cd $prefix/sdk/php util/Indexer.php --source=csv --clean demo 然后出现 初始化数据源 ... csv WARNING: ...
- Apache Lucene(全文检索引擎)—搜索
目录 返回目录:http://www.cnblogs.com/hanyinglong/p/5464604.html 本项目Demo已上传GitHub,欢迎大家fork下载学习:https://gith ...
- 42、lucene和机器学习进行全文搜索,并排序
package com.lucene.test; import java.io.BufferedInputStream; import java.io.File; import java.io.Fil ...
- coreseek实战(一):windows下coreseek的安装与测试
coreseek实战(一):windows下coreseek的安装与测试 网上关于 coreseek 在 windows 下安装与使用的教程有很多,官方也有详细的教程,这里我也只是按着官方提供的教程详 ...
- SharePoint 2013中规划企业搜索体系结构
摘要:了解如何规划小型.中型或大型企业搜索体系结构. 设置企业搜索体系结构之前,需要仔细规划很多事项.我们将逐步帮助您规划小型.中型或大型企业搜索体系结构. 您是否熟悉 SharePoint 2013 ...
- Lucene.Net 2.3.1开发介绍 —— 四、搜索(二)
原文:Lucene.Net 2.3.1开发介绍 -- 四.搜索(二) 4.3 表达式用户搜索,只会输入一个或几个词,也可能是一句话.输入的语句是如何变成搜索条件的上一篇已经略有提及. 4.3.1 观察 ...
- 加速 lucene 的搜索速度 ImproveSearchingSpeed
* Be sure you really need to speed things up. Many of the ideas here are simple to try, but others w ...
随机推荐
- git 找回 git reset --hard HEAD 后的代码
下面方法只针对当你本地代码做了 git add 或则 git commit 后又手贱的重置本地代码到上一个版本,导致本地代码丢失的情况. 如果你没有 git add 命令,而直接 git reset ...
- MySQL中文编码设置为utf-8
MySQL中文编码设置为utf-8 原文地址:http://blog.csdn.net/wangnan537/article/details/47819167 1. 查看MySQL数据库的默认编码有如 ...
- [h5+api]移动app开发用到的微信好友,朋友圈,qq好友,新浪微博分享合集
适用H5+环境,能够使用plus方法的移动app中 /** * Created by HBuilder. * User: tyx * Date: 2018-11-21 * Time: 17:28:51 ...
- Android手动显示和隐藏软键盘
1.方法一(如果输入法在窗口上已经显示,则隐藏,反之则显示) InputMethodManager imm = (InputMethodManager) getSystemService(Contex ...
- CSS字体无法设置成功的问题
在 CSS 中设置字体名称,直接写中文是可以的.但是在文件编码(GB2312.UTF-8 等)不匹配时会产生乱码的错误.xp 系统不支持 类似微软雅黑的中文. 方案一: 你可以使用英文来替代. 比如 ...
- DOM增删操作(select动态增加和删除以及清空)
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- Android TextEdit属性
EditText继承关系:View-->TextView-->EditText 去掉边框 将EditText属性设置修改 android:background="@null&qu ...
- window 命令行
清屏 cls 启动服务 net start 服务名(nexus.mysql) 关闭服务 net stop 服务名(nexus.mysql) 删除服务 sc delete 服务名 如果服务名有空格,加引 ...
- python学习:数据类型检查
函数调用时可能会出现数据类型不匹配的问题,为了保证代码的鲁棒性,最好加上数据类型检查. 应用举例: if not isinstance(x, (int, float)): raise Typ ...
- SQLSERVER中KeyHashValue的作用(上)
SQLSERVER中KeyHashValue的作用(上) SQLSERVER中KeyHashValue的作用(下) 原文的标题是:SQLSERVER在索引下如何找到哈希值的随想 现在知道KeyHash ...