NOIP2018提高组初赛滚粗记

本次竞赛初赛表现不佳,回顾题目发现选择题、多选题及问题求解部分存在失误。选择题积分规则不利,第7题积分技巧欠缺;多选题中,对手机禁用、Dijkstra算法限制理解不足;问题求解中,集合子集概念混淆。程序编写出现细节错误,如issmall()函数误用,导致答案偏差。总结经验,准备不足之处在于贪心算法理解和应用,未来需加强此方面训练。

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

先扯

多少分已不重要。一切都在预料之中。
初赛凉凉。
准备什么,那一方面的知识就非常非常简单,简单到不用准备。
不准备什么,那一方面的知识就能卡住人。
这篇博客之前没有发出去?!

具体报告

选择题一个2分?!劣势。
第7题,不会积分啊。。。。
怎么做?
第8题
教练讲了课,信心满满,但是乍一看这些选项好像都是对的。
A选项近几天同学说好像没问题,所以没选。。。。
注意一个点就好了。
C0=1,C1=1C_0=1,C_1=1C0=1,C1=1…。数列从第0项开始。。。误把它当作第一项了。
BC显然对。
多选题
第一题,手机显然不能带进考场。
第二题,模拟一下就好了。
第三题,Dij不能够跑负环边。
第四题,树的性质大家都会。
第五题,图灵奖由ACM设立。
问题求解
第二题,当且仅当a是b的子集或b是a的子集时,等式成立。
然后直接算。
Ans=2∗(∑i=05C(5,i)∗2i)−32Ans=2*(\sum_{i=0}^5C(5,i)*2^i)-32Ans=2(i=05C(5,i)2i)32
阅读程序写结果
说一下第4题。
n!个排列按照字典序从小到大排。
这题求读入的排列往后的t个排列。
虽然写了个正确答案上去,但是在检查的时候划掉了,写了个错的。
为什么会出现这样的情况?
失误1,看错一个细节。
将issmall()判断b是否>a。我看成a>b结果慌张了15分钟。
失误2,检查的时候从第160步跳到184步的这个过程,我将步数写成了196.
所以当t=200-12=188,我的答案才是正确的。
凉凉。
完善程序
第一题直接照葫芦画瓢即可。
第二题贪心题不会啊。
做这一类题,一般想出一个解决的办法,但是我贪心就是弱~想不出来
先亮一亮答案:
a[i]∗0.95&lt;=b[i]a[i]*0.95&lt;=b[i]a[i]0.95<=b[i]
total_a&gt;=50000total\_a&gt;=50000total_a>=50000
③照葫芦画瓢,total_a+j+a[i]total\_a+j+a[i]total_a+j+a[i]
f[j]+total_b−total_b_prefixf[j]+total\_b-total\_b\_prefixf[j]+total_btotal_b_prefix
f[j−a[i]]f[j-a[i]]f[ja[i]]
下面给出具体的解析。
分2种情况讨论。
一开始,考虑不打折的情况。显然,a[i]&lt;=b[i]a[i]&lt;=b[i]a[i]<=b[i],那么选a[i]a[i]a[i],否则选b[i]b[i]b[i]
考虑打折,那么所有的a[i]a[i]a[i]将变为0.95∗a[i]0.95*a[i]0.95a[i]
所以,按照不打折的情况进行初步的选取,得到total_atotal\_atotal_a
此时又有2种情况。
情况①,选取了0.95a[i]&gt;=b[i]0.95a[i]&gt;=b[i]0.95a[i]>=b[i]a[i]a[i]a[i]后,这一部分如果>=50000,那么说明能打折。所以,这一部分直接打折。并且其他的选取方案一定比这个劣。
情况②,不能直接打折,则进行相应的调整。
类背包,设f[i]f[i]f[i]表示,当第一个商店花费了total_a+itotal\_a+itotal_a+i元,要买完所有物品,第二个商店至少要花费的钱数。
现在要进行的决策是:本来选b[i]的,现在要不要选回a[i]。

最后一句

困于心衡于虑而后作。

知识点(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、 冒泡排序!!!归并排序!!!(注意相同的数排序后的不同位置)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值