【NOIP2017初赛部分题目解析】

本文解析了17年信息技术竞赛初赛题目,包括计算存储空间、数学序列极限、算法设计、概率计算、面向对象语言识别、操作问题解决、网络连接成本评估等内容,涉及计算机科学与信息技术领域的多个方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我又来口胡+毒奶初赛题目了

17年感觉题目文字都有点多,而且最大的感受就是我已经不怎么会算数了,毕竟这么久一直都是在用电脑。。。

2017:

居然非常手贱地把图灵奖选成了奥斯卡。。。我可能需要剁手谢罪。。。
在这里插入图片描述
在这里插入图片描述

  1. 分辨率为 1600x900、16 位色的位图,存储图像信息所需的空间为( )。
    A. 2812.5KB
    B. 4218.75KB
    C. 4320KB
    D. 2880KB
    正确答案: A

16位色,也就是说一个像素的颜色用16位来存,8位一字节,换算成KB就是1600 * 900 * 16 / 8 / 1024,算就行了,不要忘记位和字节不是一个东西

10.若 f[0] = 0, f[1] = 1, f[n + 1] = (f[n] + f[n - 1]) / 2,则随着 i 的增大,f[i]将接近于( )。
A. 1/21/2
B. 2/32/3
C. (√5 − 1)/2
D. 11
正确答案: B

直觉可以告诉我们应该直接选BBB,不然的话就解一下特征方程然后求一下极限即可。

12.在 n(n ≥ 3)枚硬币中有一枚质量不合格的硬币(质量过轻或质量过重),如果只有一架天平可以用来称重且称重的硬币数没有限制,下面是找出这枚不合格的硬币的算法。请把 a-c 三行代码补全到算法中。
a. A ← X ∪ Y
b. A ← Z
c. n ← |A|

算法 Coin(A, n):

1. k ← ⌊n/3⌋   
2. 将 A 中硬币分成 X,Y,Z 三个集合,使得|X| = |Y| = k,|Z| = n - 2k  
3. if W(X) ≠ W(Y)       //W(X), W(Y)分别为 X 或 Y 的重量   
4. then __________   
5. else __________   
6.   ___  
7. if n>2 then goto 1   
8. if n=2 then 任取 A 中1枚硬币与拿走硬币比较,若不等,则它不合格; 若相等,则 A 中剩下的硬币不合格.    
9.  if n=1 then A 中硬币不合格   

正确的填空顺序是( )。
A. b, c, a
B. c, b, a
C. c, a, b
D. a, b, c
正确答案: D

这天杀的排版,洛谷上面把c选项和下一行压在了一起看懵了我半天。
其实这个策略是挺显然的,如果X,Y重量不等,显然假硬币就在这两堆里面,否则就在Z里面,递归处理即可。

14.小明要去南美洲旅游,一共乘坐三趟航班才能到达目的地,其中第 1 个航班 准点的概率是 0.9,第 2 个航班准点的概率为 0.8, 第 3 个航班准点的概率为 0.9。如果存在第 i 个(i=1,2)航班晚点,第 i+1 个航班准点,则小明将赶不 上第 i+1 个航班,旅行失败;除了这种情况,其他情况下旅行都能成功。请 问小明此次旅行成功的概率是( )。
A. 0.5
B. 0.648
C. 0.72
D. 0.74
正确答案: D

正难则反,考虑小明旅行失败的概率,显然就是要么1晚点2准点3任意,要么就是1任意2晚点3准点,分别算一下即可。

19.以下是面向对象的高级语言的有( )。
A. 汇编语言
B. C++
C. Fortran
D. Java
正确答案: BD

Fortan是指Formula Translation,我只知道它世界上最早出现的高级语言翻译器,至少“最早”这一点是毋庸置疑的,我们知道C++是最早的面向对象的高级语言,于是可以排除C选项。

21.如右图所示,共有 13 个格子。对任何一个格子进行一 次操作,会使得它自己以及与它上下左右相邻的格子中 的数字改变(由 1 变 0,或由 0 变 1)。现在要使得所 有的格子中的数字都变为 0,至少需要_________次操作。
在这里插入图片描述
正确答案: 3

高斯消元解一下异或方程组然后利用人类智慧来搞,当然运气好的话可能可以一眼看出来该按哪三个。

22.如下图所示,A 到 B 是连通的。假设删除一条细的边的代价是 1,删除一条粗的边的代价是 2,要让 A、B 不连通,最小代价是(________)(2 分),最小代价的不同方案数是(_______)(3 分)。(只要有一条删除的边不同,就 是不同的方案)
在这里插入图片描述
正确答案: 4
正确答案: 9

如果你能够人脑跑最大流也行,但是方案数就不太好统计了。
平面图最小割转对偶图最短路,把最短路DAG画出来统计一下路径个数就行了。

#include <iostream>
using namespace std;
int main()
{
    int n, m;
    cin >> n >> m;
    int x = 1;
    int y = 1;
    int dx = 1;
    int dy = 1;
    int cnt = 0;
    while (cnt != 2)
    {
        cnt = 0;
        x = x + dx;
        y = y + dy;
        if (x == 1 || x == n)
        {
            ++cnt;
            dx = -dx;
        }
        if (y == 1 || y == m)
        {
            ++cnt;
            dy = -dy;
        }
    }
    cout << x << " " << y << endl;
    return 0;
} 

输入 1:4 3
输出 1:1 3
输入 2:2017 1014
输出 2:2017 1
输入 3:987 321
输出 3:1 321

实际上在当操作次数达到lcm(n−1,m−1)lcm(n-1,m-1)lcm(n1,m1)的时候会退出循环。这个时候看一下分别经历了多少个循环即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值