1.16寒假集训

发布时间:2024年01月16日

A:

解题思路:

题目的意思是小辰实力大于集训队员的实力,成就感就加上该集训队员的实力值。

下面是c++代码:

#include<iostream>
using namespace std;
int main()
{
    int n,x,arr[100],num = 0;
    cin >> n >> x;
    for(int i = 0;i < n;i++){
        cin >> arr[i];
        if(x > arr[i]){
            num += arr[i];
        }
    }
    cout << num;
    return 0;
}

B:

解题思路:

我的解法很笨,就是暴力遍历,先判断n + m不是质数,再判断m是质数,但是在八哥的点通下,发现了O(1)的时间复杂度,得到一个结论

一个质数的倍数一定不是质数!!!!!

下面是本人c++代码:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int n,m,result = 0,num;
    cin >> n;
    num = n;
    num++;//先加1是避免判断1的情况
    while(1){
        num++;
        int index = 1;
        for(int i = 2;i <= sqrt(num);i++){
            if(num % i == 0){
                for(int j = 2;j <= sqrt(num - n);j++){
                    if((num - n) % j == 0){
                        index = 0;
                        break;
                    }
                }
                if(index == 1){
                    cout << num - n;
                    return 0;
                }
            }
        }
    }
    return 0;
}

这个代码就像早上起来上厕所,真是又臭又长。。。。。

下面是八哥的c++代码:

清新脱俗

C:

解题思路:

这题只要判断m - 1天就行,因为最后一天只到中午,判断每天的树的高度,要是大于k,高度就剪成b,否则就加a,最后一一输出每棵树的高度就行,数量级很小,随便暴力,我宣布,暴力算法是最好的算法。

下面是c++代码:

#include<iostream>
using namespace std;
int main()
{
    int t,n,a,k,b,m;
    cin >> t;
    while(t != 0){
        cin >> n;
        int arr[1000];
        for(int i = 0;i < n;i++){
            cin >> arr[i];
        }
        cin >> a >> k >> b;
        cin >> m;
        for(int j = 0;j < m - 1;j++){
            for(int l = 0;l < n;l++){
                arr[l] += a;
                if(arr[l] > k){
                    arr[l] = b;
                }
            }
        }
        for(int j = 0;j < n;j++){
            cout << arr[j] << " ";
        }
        cout << endl;
        t--;
    }
    return 0;
}

D:

解题思路:

嗯。。。。直接输出n和2n

下面是c++代码:

#include<iostream>
using namespace std;
int main()
{
    int n,t;
    cin >> t;
    while(t != 0){
        cin >> n;
        cout << n << " " << 2 * n << endl;
        t--;
    }
    return 0;
}

E:

解题思路:

题意就是判断x能否被2,3,5,7其中的一个或多个数整除,可以就输出YES,结束程序,否则输出NO。

下面是c++代码:

#include<iostream>
using namespace std;
int main()
{
    int x,arr[4] = {2,3,5,7};
    cin >> x;
    for(int i = 0;i < 4;i++){
        if(x % arr[i] == 0){
            cout << "YES";
            return 0;
        }
    }
    cout << "NO";
    return 0;
}

文章来源:https://blog.csdn.net/2301_81718511/article/details/135622021
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。