04/01吉比特笔试

只有我选择题是乱猜的么,填空题也只做了三个
不怎么想看题,直接乱选hhh


第一道编程题用了素数筛,100%

#include <iostream>
#include <cmath>
#include <climits>
using namespace std;
const int N = 200000;
int prime[N] = {0}, num_prime = 0;
int isNotPrime[N] = {1, 1};

int main(){
    for(int i = 2 ; i < N ; i ++){
        if(!isNotPrime[i])
        prime[num_prime++]=i;
        for(int j = 0 ; j < num_prime && i * prime[j] <  N ; j ++){
            isNotPrime[i * prime[j]] = 1;
            if( !(i % prime[j] ))
                break;
        }
    }

    int n;
    cin >> n;
    if(n == 1 || n ==2){
        cout << 2;
        return 0;
    }
    int res, temp = INT_MAX;
    for(int i = 1; i < N; i++){
        if(temp > abs(prime[i] - n)){
            temp = abs(prime[i] - n);
            res = prime[i];
        }
    }
    cout << res;
    return 0;
}

第二题全排列暴力,60%,盲猜dp,这里代码不贴了,都会的

#吉比特##笔试题目#
全部评论
第一题前后check素数也能过,素数间隔应该不大,第二题写的状压才过60,没去重hhh
点赞 回复
分享
发布于 2020-04-02 08:54

相关推荐

2 1 评论
分享
牛客网
牛客企业服务