码迷,mamicode.com
首页 > 其他好文 > 详细

loli的测试——搜索

时间:2018-05-24 20:45:24      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:元素   cstring   nbsp   include   pac   using   测试   朴素   考试   

  今天是2018.5.24,loli给我们说要考搜索,本来以为是给初学者们考的就没准备,然而老师说我们也要考。

  T1:N皇后问题

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

   技术分享图片
# include <cstdio>
# include <iostream>
# include <cstring>

using namespace std;

int n,A=0;
bool a[12];
bool b[30];
bool c[30];
int ans[12];

void write()
{
    A++;
    for (int i=1;i<n;i++)
        printf("%d ",ans[i]);
    printf("%d\n",ans[n]);
}

void dfs(int x)
{
    if(x==n+1)
    {
        write();
        return ;
    }
    for (int i=1;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+1);
        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(1);
    if(A==0) printf("no solute!\n");
    
    fclose(stdin);
    fclose(stdout);
    return 0;
}
N皇后问题

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

  和luogu上同名题目一模一样。然而考试时我问老师元素是不是只有‘a‘-‘z‘, 他说不一定。。。那也好办,就按ascii码存一下,最大到300总够了吧,然而会很慢,于是。。。再记录一下最大最小值就OK啦,虽然还可以离散化一下,然而对于这道题不用。最气的是考完发了评测包发现数据中并没有任何奇怪的东西,就是只有‘a‘-‘z‘。

  

loli的测试——搜索

标签:元素   cstring   nbsp   include   pac   using   测试   朴素   考试   

原文地址:https://www.cnblogs.com/shzr/p/9084800.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!