• 2023年9月青少年软件编程(C 语言) 等级考试试卷(三级)


    2023年9月青少年软件编程(C 语言) 等级考试试卷(三级)含答案

    1.谁是你的潜在朋友
    题目描述
    “臭味相投”——这是我们描述朋友时喜欢用的词汇。两个人是朋友通常意味着他们存在着许多共同的兴趣。然而作为一个宅男,你发现自己与他人相互了解的机会并不太多。幸运的是,你意外得到了一份北大图书馆的图书借阅记录,于是你挑灯熬夜地编程,想从中发现潜在的朋友。 首先你对借阅记录进行了一番整理,把N个读者依次编号为1,2,…,N,把M本书依次编号为1,2,…,M。同时,按照“臭味相投”的原则,和你喜欢读同一本书的人,就是你的潜在朋友。你现在的任务是从这份借阅记录中计算出每个人有几个潜在朋友。
    输入
    第一行两个整数N,M,2 <= N ,M<= 200。接下来有N行,第i(i = 1,2,…,N)行每一行有一个数,表示读者i-1最喜欢的图书的编号P(1<=P<=M)
    输出
    包括N行,每行一个数,第i行的数表示读者i有几个潜在朋友。如果i和任何人都没有共同喜欢的书,则输出“BeiJu”(即悲剧,^ ^)
    样例输入
    4  5
    2
    3
    2
    1
    样例输出
    1
    BeiJu
    1
    BeiJu

    参考答案

    1. #include<iostream>
    2. using namespace std;
    3. int n,m;
    4. int a[300];
    5. int main() {
    6.     cin>>n>>m;
    7.     for(int i=0;i<n;i++) {
    8.         cin>>a[i];
    9.     }
    10.     for(int i=0;i<n;i++) {
    11.         int sum=0;
    12.         for(int j=0;j<n;j++) {
    13.             if(a[i]==a[j]&&i!=j) {
    14.                 sum++;
    15.             }
    16.         }
    17.         if(sum!=0) {
    18.             cout<<sum<<endl;
    19.         } else {
    20.             cout<<"BeiJu"<<endl;
    21.         }
    22.     }
    23.     return 0;


    2.课程冲突
    题目描述
    小 A 修了 n 门课程, 第 i 门课程是从第 ai 天一直上到第 bi 天。
    定义两门课程的冲突程度为 : 有几天是这两门课程都要上的。
    例如 a1=1,b1=3,a2=2,b2=4 时, 这两门课的冲突程度为 2。
    现在你需要求的是这 n 门课中冲突程度最大的两门课的冲突程度。
    输入
    第一行一个正整数 n 表示课程数量。 接下来 n 行,每行两个正整数 ai,bi。 2 ≤ n≤ 1000, 1 ≤ ai ≤ bi ≤ 1000。
    输出
    输出一个整数表示最大的冲突程度
    样例输入
    3
    1 3
    2 4
    5 5
    样例输出
    2

    1. #include <iostream>
    2. #include <algorithm>
    3. #include <vector>
    4. using namespace std;
    5. struct project {
    6.     int start;
    7.     int end;
    8.     project(int a,int b):start(a),end(b){}
    9.     bool operator <(const project A)const {
    10.         if (start == A.start)
    11.             return end < A.end;
    12.         else
    13.             return start < A.start;
    14.     }
    15. };
    16. int main() {
    17.     int n;
    18.     cin >> n;
    19.     vector<project>alls;
    20.     for (int i = 0; i < n; i++)
    21.     {
    22.         int a, b;
    23.         cin >> a >> b;
    24.         alls.push_back(project(a, b));
    25.     }
    26.     sort(alls.begin(), alls.end());
    27.     int result = 0;
    28.     for (int i = 0; i < n; i++) {
    29.         if (alls[i].end - alls[i].start < result)//剪枝
    30.             continue;
    31.         for (int j = i + 1; j < n; j++) {
    32.             if (alls[j].start > alls[i].end)
    33.                 break;
    34.             int t = min(alls[i].end, alls[j].end) - alls[j].start + 1;
    35.             result = max(t, result);
    36.         }
    37.     }
    38.     cout << result << endl;
    39.     return 0;
    40. }

    更多内容请查看网站:【试卷中心 -- C/C++ 三级】

    网站链接 

    青少年软件编程历年真题模拟题实时更新

  • 相关阅读:
    包管理器pacman常用方法
    Redis的发布和订阅
    计算机视觉+人工智能面试笔试总结——深度学习基础题41~51
    MySQL学习笔记5——函数和索引
    台式电脑电源功率越大越费电吗?装机选购多少W电源
    软考高级软件架构风格定义以及分类
    java基础
    超级实用的程序员接单平台,看完少走几年弯路,强推第一个!
    分布式系统原理-副本与一致性
    pattern recognition and machine learning 阅读笔记(1)
  • 原文地址:https://blog.csdn.net/No0d1es/article/details/133960241