zoukankan      html  css  js  c++  java
  • 甲题题解-1116. Come on! Let’s C (20)-(素数筛选法)

    用vis标记出现过的id,checked标记询问过的id。至于如何判断排名为素数,用素数筛选法预处理一下即可,水题。

    #include <iostream>
    #include <cstdio>
    #include <algorithm>
    #include <string.h>
    using namespace std;
    /*
    素数筛选法
    */
    const int maxn=10000+5;
    int isPrime[maxn];
    int vis[maxn];
    int checked[maxn];
    int ranklist[maxn];
    
    void init(){
        for(int i=0;i<maxn;i++)
            isPrime[i]=1;
        isPrime[1]=0;
        for(int i=2;i<maxn;i++){
            if(isPrime[i]){
                for(int j=i*2;j<maxn;j+=i){
                    isPrime[j]=0;
                }
            }
        }
    }
    
    int main()
    {
        init();
        int n,k;
        int a;
        memset(vis,0,sizeof(vis));
        memset(checked,0,sizeof(checked));
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            scanf("%d",&a);
            ranklist[a]=i;
            vis[a]=1;
        }
        scanf("%d",&k);
        for(int i=0;i<k;i++){
            scanf("%d",&a);
            if(!vis[a]){
                printf("%04d: Are you kidding?
    ",a);
            }
            else if(!checked[a]){
                if(ranklist[a]==1){
                    printf("%04d: Mystery Award
    ",a);
                }
                else if(isPrime[ranklist[a]]){
                    printf("%04d: Minion
    ",a);
                }
                else{
                    printf("%04d: Chocolate
    ",a);
                }
                checked[a]=1;
            }
            else{
                printf("%04d: Checked
    ",a);
            }
        }
        return 0;
    }
    View Code
  • 相关阅读:
    python list添加元素的几种方法
    Python ---- list和dict遍历
    python 之 collections
    python list 中元素的统计与排序
    pandas dataframe 读取 xlsx 文件
    Python 缓存机制与 functools.lru_cache(zz)
    pip 使用
    python 中的异常处理
    python 时间日期处理
    python read txt file
  • 原文地址:https://www.cnblogs.com/chenxiwenruo/p/6131771.html
Copyright © 2011-2022 走看看