思路:用筛法给素数打表,二次探测法(只需要增加的)–如果的位置被占,那么就依次探测。

注意:如果输入的,这也不是素数;如果,你需要打表的范围就更大了,因为不是素数。


AC代码

#include <stdio.h>
#include <math.h>
#include <string.h>
const int maxn = 10000+20;
int vis[maxn], pos[maxn];

void getPrim(int n) {
    int m = sqrt(n+0.5);
    memset(vis, 0, sizeof(vis));
    vis[0] = vis[1] = 1;
    for(int i = 2; i <= m; i++) if(!vis[i])
        for(int j = i*i; j <= n; j += i) vis[j] = 1;
}

int main() {
    getPrim(maxn);
    int n, m;
    scanf("%d%d", &n, &m);
    if(vis[n]) {
        for(int i = n+1; i <= maxn; i++) {
            if(!vis[i]) {
                n = i;
                break;
            }
        }
    }
    //printf("%d\n", n);
    memset(pos, 0, sizeof(pos));
    int key;
    for(int i = 0; i < m; i++) {
        scanf("%d", &key);
        int ok = 0;
        for(int j = 0; j < n; j++) {
            int hkey = (key+j*j) % n;
            if(!pos[hkey]) {
                ok = 1;
                pos[hkey] = 1;
                printf("%d%c", hkey, i == m-1 ? '\n' : ' ');
                break;
            }
        }
        if(!ok) printf("-%c", i == m-1 ? '\n' : ' ');
    }
    return 0;
}

如有不当之处欢迎指出!

PAT1078 Hashing 坑爹的更多相关文章

  1. PAT1078 Hashing

    11-散列2 Hashing   (25分) The task of this problem is simple: insert a sequence of distinct positive in ...

  2. pat1078. Hashing (25)

    1078. Hashing (25) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The task of t ...

  3. PAT-1078 Hashing (散列表 二次探测法)

    1078. Hashing The task of this problem is simple: insert a sequence of distinct positive integers in ...

  4. _00013 一致性哈希算法 Consistent Hashing 新的讨论,并出现相应的解决

    笔者博文:妳那伊抹微笑 博客地址:http://blog.csdn.net/u012185296 个性签名:世界上最遥远的距离不是天涯,也不是海角,而是我站在妳的面前.妳却感觉不到我的存在 技术方向: ...

  5. [Algorithm] 局部敏感哈希算法(Locality Sensitive Hashing)

    局部敏感哈希(Locality Sensitive Hashing,LSH)算法是我在前一段时间找工作时接触到的一种衡量文本相似度的算法.局部敏感哈希是近似最近邻搜索算法中最流行的一种,它有坚实的理论 ...

  6. Elasticsearch 的坑爹事——记录一次mapping field修改过程

    Elasticsearch 的坑爹事 本文记录一次Elasticsearch mapping field修改过程 团队使用Elasticsearch做日志的分类检索分析服务,使用了类似如下的_mapp ...

  7. [iOS]坑爹的ALAsset(Assets Library Framework)

    Assets Library Framework 可以用来做iOS上的多选器,选照片视频啥的啦就不介绍了. 目前的项目有点类似dropbox,可以选择设备内的照片然后帮你上传文件,使用了Assets ...

  8. .net core 一次坑爹的类库打包过程

    众所周知,.net core 跨平台类库引用一定要通过nuget获得.(如有问题,欢迎指出) 打包 将普通.net project转换成.net core 的类库有两种方式: 1.新建.net cor ...

  9. 首师大附中互测题:50136142WXY的坑爹百度地图【B006】(可以喝的超大桶水)

    [B006]50136142WXY的坑爹百度地图[难度B]——————————————————————————————————————————————————————————————————————— ...

随机推荐

  1. AI_神经网络监督学习

    神经网络的神奇之处在哪? 所有神经网络创造出来的价值,都是由一种机器学习,称之为监督学习, 下面这些例子神经网络效果拔群,通过深度学习获利最多的是在线广告 技术的进步来源于计算机视觉和深度学习 例如: ...

  2. input标签的美化

    css input checkbox和radio样式美化:http://www.haorooms.com/post/css_mh_ck_radio 自定义 css checkbox 样式  :http ...

  3. 【转】CentOS 6.3(x86_64)下安装Oracle 10g R2

    目 录 一.硬件要求二.软件三.系统安装注意四.安装Oracle前的系统准备工作五.安装Oracle,并进行相关设置六.升级Oracle到patchset 10.2.0.4七.使用rlwrap调用sq ...

  4. python --- queue模块使用

    1. 什么是队列? 学过数据结构的人都知道,如果不知道队列,请Google(或百度). 2. 在python中什么是多生产者,多消费模型? 简单来说,就是一边生产(多个生产者),一边消费(多个消费者) ...

  5. 主函数特别之处:public static void main(String[] args)

    public static void main(String[] args) public class Test_java {//主函数特殊之处 public static void main(Str ...

  6. SpringMVC源码之Controller查找原理

    摘要 本文从源码层面简单讲解SpringMVC的处理器映射环节,也就是查找Controller详细过程. SpringMVC请求流程 Controller查找在上图中对应的步骤1至2的过程 Sprin ...

  7. 【Thinkphp 5】 如何引入extend拓展文件

    extend/maile/cc.php 文件目录 cc文件 必须要加上命名空间,如下 cc.php文件内容如下: namespace maile; //命名空间 maile是文件夹名称 class C ...

  8. docker基础及安装

    Docker介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...

  9. [DeeplearningAI笔记]改善深层神经网络1.1_1.3深度学习使用层面_偏差/方差/欠拟合/过拟合/训练集/验证集/测试集

    觉得有用的话,欢迎一起讨论相互学习~Follow Me 1.1 训练/开发/测试集 对于一个数据集而言,可以将一个数据集分为三个部分,一部分作为训练集,一部分作为简单交叉验证集(dev)有时候也成为验 ...

  10. Cypher查询语言--Neo4j-MATCH(二)

    目录 Match 相关节点 接出关系Outgong relationship 定向关系和标识符 通过关系类型匹配 通过关系类型匹配和使用标识符 带有特殊字符的关系类型 多重关系 可变长度的关系 在可变 ...