NOIP 2018 提高组初赛解题报告

单项选择题:

  1. D 进制转换题,送分;
  2. D 计算机常识题,Python是解释运行的;
  3. B 常识题,1984年小平爷爷曰:“娃娃抓起”;
  4. A 数据结构常识题,带进去两个数据就可以选出来;
  5. D 历年真题没有做改动,直接就是n²级别(等差数列求和);
  6. B 画一棵树就可以了,每年必考的表达式题;
  7. B 概率与期望。数学做法有点复杂,不大会;感觉一下就是三分之一;
  8. A 押中卡塔兰,一眼题;
  9. D 中国重男轻女的家庭,了解一下?男女比例不还是差不多1:1;
  10. B 如果不会的话,手动模拟一下就可以了;

 

不定项选择:

  1. AB 常识题。其实注意考场的人在念清场规则的时候就知道了;
  2. CD 手动模拟两个极限就可以了(2叉 -> 3叉);
  3. ABD 显然B和D都是对的;至于A的“不一定”这个,并非SPFA所以是有可能的(确定了每个节点过一次);
  4. ABD 数据结构的常识题;
  5. BCD 计算机相关奖项,常识题;

 

问题求解:

  1. 去了/没去/没去/没下雨    就是送的,随便模拟一下就出来了;
  2. 454 手动模拟几组小数据,发现必然要求:a and b = a,a or b = b;这样要求二进制下,一个数是另一个数的子集;这样只要枚举小的数有i个1,算完后减去重复的情况;

 

看程序写结果:

  1. 4 模拟题,只要注意是从0到14就可以了,每一个平方一下,最后答案是4;
  2. 6 画图以后手膜环数;看不出来也可以直接模拟,毕竟数据小;
  3. 16 坑爹题。心累题。找不重复的子串个数。虽然很容易看出来但是会莫名错掉。
  4. 2 1 3 5 6 4/3 2 5 6 1 4    虽然就在考前了解了一下康托展开但是!!!我 ! 忘 ! 了 !

 

完善程序:

  1. a[x] = i / i + 1 / R[a[i]] / a[i] / R[i]    双向链表其实不难,填空也只要对称填就可以了,然而不知道为什么手膜的时候会WA?
  2. a[i] * 0.95 <= b[i] / total_a >= 50000 / total_a + j + a[i] / f[j] + total_b – total_b_prefix / f[j-a[i]]    一个类似背包的DP填程;全世界80万人疯传!你不可不知的填程小技巧!天啊!这居然是DP!我看了3遍都不相信!真的把大家都吓傻了!你一定要看到最后!震惊!NOIP提高初赛的压轴题竟是……男人看了沉默!女人看了流泪!关于CCF你不可不知的若干黑幕!敬请关注今天的《走进NOIP》。

 

最后的最后:

  67分谢幕。(还没开始就结束了)

转载于:https://www.cnblogs.com/mojibake/p/9787453.html

知识点(by chs): 1、 一个32位整型变量占4字节(一个字节8位) 2、 运算符优先级表 !> & > ^ > | > && > || 常用:除、乘、取余、加、减。(按优先级从大到小顺序) 优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数下标 数名[常量表达式] 左到右 () 圆括号 (表达式)/函数名(形参表) . 成员选择(对象) 对象.成员名 -> 成员选择(指针) 对象指针->成员名 2 - 负号运算符 -常量 右到左 单目运算符 (type) 强制类型转换 (数据类型)表达式 ++ 自增运算符 ++变量名 单目运算符 -- 自减运算符 --变量名 单目运算符 * 取值运算符 *指针变量 单目运算符 & 取地址运算符 &变量名 单目运算符 ! 逻辑非运算符 !表达式 单目运算符 ~ 按位取反运算符 ~表达式 单目运算符 Sizeof 长度运算符 sizeof(表达式) 3 / 除 表达式/表达式 左到右 双目运算符 * 乘 表达式*表达式 双目运算符 % 余数(取模) 整型表达式%整型表达式 双目运算符 4 + 加 表达式+表达式 左到右 双目运算符 - 减 表达式-表达式 双目运算符 5 << 左移 变量<<表达式 左到右 双目运算符 >> 右移 变量>>表达式 双目运算符 6 > 大于 表达式>表达式 左到右 双目运算符 >= 大于等于 表达式>=表达式 双目运算符 < 小于 表达式<表达式 双目运算符 <= 小于等于 表达式<=表达式 双目运算符 7 == 等于 表达式==表达式 左到右 双目运算符 != 不等于 表达式!= 表达式 双目运算符 8 & 按位与 表达式&表达式 左到右 双目运算符 9 ^ 按位异或 表达式^表达式 左到右 双目运算符 10 | 按位或 表达式|表达式 左到右 双目运算符 11 && 逻辑与 表达式&&表达式 左到右 双目运算符 12 || 逻辑或 表达式||表达式 左到右 双目运算符 13 ?: 条件运算符 表达式1? 表达式2: 表达式3 右到左 三目运算符 14 = 赋值运算符 变量=表达式 右到左 /= 除后赋值 变量/=表达式 *= 乘后赋值 变量*=表达式 %= 取模后赋值 变量%=表达式 += 加后赋值 变量+=表达式 -= 减后赋值 变量-=表达式 <<= 左移后赋值 变量<<=表达式 >>= 右移后赋值 变量>>=表达式 &= 按位与后赋值 变量&=表达式 ^= 按位异或后赋值 变量^=表达式 |= 按位或后赋值 变量|=表达式 15 , 逗号运算符 表达式,表达式,… 左到右 从左向右顺序运算 3、 完全图及其性质:若一个图的每一对不同顶点恰有一条边相连,则称为完全图。完全图是每对顶点之间都恰连有一条边的简单图。n个端点的完全图有n个端点及n(n − 1) / 2条边 4、 冒泡排序!!!归并排序!!!(注意相同的数排序后的不同位置)
NOIP 2018 普及初赛第1028题的题解如下: 题目描述: 给定一个正整数N,要求编写一个程序,计算出它的阶乘N!。阶乘N!是所有小于或等于N的正整数的乘积,且0!定义为1。例如:5! = 5 × 4 × 3 × 2 × 1 = 120。 输入描述: 输入仅包含一个正整数N,其范围为1到20。 输出描述: 输出为计算得到的阶乘N!的值。 解题思路: 1. 使用一个数来存储中间计算结果。 2. 从1开始,依次计算到N的所有整数的阶乘。 3. 每计算出一个数的阶乘,就将其乘到数中,更新数的值。 4. 最终数存储的就是N!的结果。 注意点: - 由于N的范围为1到20,而20!的结果是一个非常大的数,普通的数据类型无法存储,因此需要使用数来模拟大数运算。 - 在实现大数乘法时,需要注意进位的问题。 以下是一个简化的伪代码示例: ``` 输入:N 创建一个足够大的数result用于存储结果 result[0] = 1 // 初始化结果为1 对于i从1到N: carry = 0 // 进位初始化为0 对于j从0到result的长度减1: temp = result[j] * i + carry result[j] = temp % 10 // 更新当前位的值 carry = temp / 10 // 计算新的进位 结束循环 如果carry不为0,则继续添加进位 结束循环 输出result数(从后往前输出,以得到正确的顺序) ``` 实际编程时,需要注意数的索引处理和进位处理,以及在输出时避免在前面输出不必要的零。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值