zoukankan      html  css  js  c++  java
  • 2021杭电多校第六场题解

    多校越来越难了……

    A

    发现只有可能连着1~2个正数的和是质数,然后很容易发现没有-1的情况,因为无论如何答案是[-t,t+1]或者[-t,t+2]或者[x,x]或者[x-1,x]或者[x,x+1],除了0的情况很特殊直接输出3。然后就是暴力判断即可

    #include<bits/stdc++.h>
    using namespace std;
    const int N=2e7+70;
    int n,cnt,pri[N/10],n1[N/2],n2[N/2];
    bool vis[N],is[N];
    int main()
    {
        int T;scanf("%d",&T);
        n=2e7+7;
        vis[1]=1;
        for(int i=2;i<=n;++i)
        {
            if(!vis[i])pri[++cnt]=i;
            for(int j=1;j<=cnt&&i*pri[j]<=n;++j)
            {
                vis[i*pri[j]]=1;
                if(i%pri[j]==0)break;
            }
        }
        for(int i=1e7+1;i;--i)if(!vis[i*2+1])n2[i]=i;else n2[i]=n2[i+1];
        for(int i=1e7+19;i;--i)if(!vis[i])n1[i]=i;else n1[i]=n1[i+1];
        while(T--)
        {
            scanf("%d",&n);
            int ans1,ans2;
            if(!n)puts("3");
            else if(n<0)printf("%d
    ",min(2*n1[1-n],2*n2[1-n]+1));
            else if(n==n1[n])puts("1");
            else if(n-1==n2[n-1]||n==n2[n])puts("2");
            else printf("%d
    ",min(2*n1[n],2*n2[n]+1));
        }
    }
    View Code

    持续更新中……

  • 相关阅读:
    BZOJ1049 [HAOI2006]数字序列0
    UOJ265 【NOIP2016】愤怒的小鸟
    #include <deque>
    #include <queue>
    #include <vector>
    #include <set>
    #include <map>
    BZOJ1217:[HNOI2003]消防局的设立
    浅谈贪心
    CF1060B:Maximum Sum of Digits
  • 原文地址:https://www.cnblogs.com/hfctf0210/p/15110413.html
Copyright © 2011-2022 走看看