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 ...
随机推荐
- JAVA 项目 调用外部的WebSerivce接口,入门实例 (一)
前言: 第一次接触WebService,工作需要,调用外部的WebService接口,所以暂时我这里不考虑发布,做个记录,待以后回来可以看看,只是最初级的,所以有何不好.不对的地方,欢迎看到的同僚给予 ...
- 让AutoMapper在你的项目里飞一会儿
先说说DTO DTO是个什么东东? DTO(Data Transfer Object)就是数据传输对象,说白了就是一个对象,只不过里边全是数据而已. 为什么要用DTO? 1.DTO更注重数据,对领域对 ...
- Oracle-检查原因并重新编译无效的存储过程
1.查看存储过程编译无效的原因 show errors procedure hr.getperson; 2.指定一个存储过程进行编译 alter procedure hr.getperson com ...
- LeetCode CombinationSum II
class Solution { public: vector<vector<int> > combinationSum2(vector<int> &num ...
- 小tip: 某简单的字符重叠与图形生成----张鑫旭
引言 字符重叠不是什么稀奇的东西. 如1像素错位模拟阴影效果: 或者powerFloat中展示的带边框三角: 以及其他很多. 但是技术这东西不是豆腐,老了可以吃,臭了也可以吃:那我这里还拿着个说事作甚 ...
- js-权威指南学习笔记3
第四章 表达式和运算符 1.最简单的表达式是原始表达式,是表达式的最小单位——它们不再包含其他表达式.JS中原始表达式包含常量或直接量.关键字和变量. 2.一个对象的属性名不是固定值时,必须使用方括号 ...
- vs2017 + Python3.6 +Django1.11 连接mysql数据库
不废话直接来. vs2017创建一个新的python web项目之后默认链接数据库是sqlite.但是我就想连接到Mysql 上面玩,于是开始倒腾了.下面是步骤 1.修改settings.py 文件需 ...
- VMWare Workstation使用总结几则[转]
VMWare Workstation使用总结几则 1.安装 使用GHOST盘安装时一定要注意,需要把空盘建立分区并设置为主分区 PQ的使用形式,进入PQ找到磁盘设置为启用 否则 启动后显示Boot ...
- EOS开发经验总结——不定期持续更新中
一.新手安装mysql乱码问题 1.数据库安装时设置默认编码格式为UTF8或者打开mysql安装目录下my.ini,变更default-character-set=utf8: 2.打开EOS的Gove ...
- 应用Python处理空间关系数据
from osgeo import ogrimport jsonfrom geojson import loads, dumps, Feature, FeatureCollectionfrom sha ...