济南培训第二天

简单行程

今天,又考了两场试,总的来说还好。
令我高兴的是早上一道dp题A掉了。
那道题我做的过程还是非常有意思的,有时间会写一篇博客和大家分享的。

学到了什么

首先,了解到了一个大消息,那就是今年NOIP命题负责人换了,所以,这个考试的风格也会发生变化,比如今年预赛就出现了某些奇怪的东西(网络流)。所以,有时间,咱们还是把这个看看吧!
今天还讲了Treap。
还讲了素数筛法,但是对我似乎没什么用(因为我每次都用,已经很熟练了)。
下面,再提一些可能有用的知识点:

1、输出优化

什么意思呢?
有的同学可能会联想起读入优化,读入优化,是把一个整数按字符一个一个读入,那么输出优化是不是把输出的东西一个一个字符输出呢?
其实,正好相反,输出优化是把要输出的东西压成一个字符串,一次性输出。
有一个同学做了一个实验,用输出优化前,scanf输出1000000000个1需要600多秒,但用输出优化后,只要2秒。
但是一般情况下不要使用输出优化,原因有两点:

  1. 容易写错
  2. 一般情况下,输出量不会特别大

所以,在一般情况下不要用,除非输出量特别大,并且有一个变态的出题人想卡你的输出的话,再用。

2、变量名的命名

有人会奇怪,变量名命名还有什么特别的地方吗?
其实这里有个大坑。
我虽然在正式考试时没有吃过这个亏,但在平时练习时,却被坑过两次。
那么这个神秘的坑究竟是什么呢?
其实也并不神秘,这是由Windows和Linux的差别导致的。
也就是说,有些变量名在Windows下能编译通过,但在Linux下不行。
比如:index、time、y1
为什么呢?
因为这些是库中已经定义的变量,所以,这样命名肯定不行。
那么我们有什么方法去避免这个问题呢?
有两个方法:
法一(zhx提供):在变量名里加下划线,如果嫌麻烦,可以先写好,再用查找替换功能替换即可。
法二(cgg提供):重复字母、截取字母或是取一些奇怪的名字。比如要用到index,我们可以采取in或是ind或是dex(截取字母),要用time,可以用timee(重复字母),或者比如要用push,可以用pash(取一些奇怪的名字)。当然取奇怪名字还有一定的反作弊影响,还记得上次说的技巧吧——冷静地看旁边同学的屏幕,我们看的就是函数名和变量名,所以我们可以取奇怪的名字,比如不用bfs,而用lalala,不用dfs,用solve之类的。
两个方法各有的的好处,自己觉得哪个用的习惯,就用哪个。

3、四种平衡数的优劣

treap:比sbt慢,比sbt好写

sbt:快、比较好写,功能不太全面

splay:特别慢,常数巨大无比、功能最强大,不好写

rbt:比sbt快,难写

四个理论都是O(logn),但是splay由于常数巨大,可以看做根号n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值