2019年 CCPC-Wannafly Winter Camp 总结及感悟

比赛网站:传送门

一、得到的知识训练

1、 dp

①直接dp

数据范围很小(n<=100) 且符合动态规划的题目特征可直接暴力dp,直接用多维(一般三维以上)状态、多重(一般三重以上)for循环完成状态转移,注意题目中的限制条件以及你的初始化,也可以直接交表。

例题:CCPC-Wannafly Winter Camp Day1 (Div2, onsite) B 吃豆豆

②树形dp

下面这道题是求树上经过一个点的四条最长路径,显然是树形dp求直径的一个变形,我的思路对了但是就是写不对,换队友写就过了,所以战术还是十分重要的。。。(我还是找我的错去吧。。。)

例题:CCPC-Wannafly Winter Camp Day4 (Div2, onsite) K 两条路径 

当数据范围比较大时,就要考虑各种优化(单调队列优化、线段树优化、斜率优化等),当然稍微难一点我就不会做了。

③状压dp

一看数据范围只有15,立刻想到状压dp。这道题如果按数据范围15算的话应该是标准的简单状压dp题,可能细节会有点多,但是拿来练习还是不错的。实际上n为1e5也可以做,只是我现在不会做。

例题:CCPC-Wannafly Winter Camp Day5 (Div2, onsite) F Kropki

2、构造、推理

这种题就要利用好题目中给的关键信息(互质、和为n等),结合其性质构造结果,当然可能带有很多猜想的成分。。。

例题:CCPC-Wannafly Winter Camp Day1 (Div2, onsite) C 拆拆拆数

对于删数类题,要牢记总是先删最前面能使删了它之后整个数变大的数。多次删时每次都要重新挑选。(暂时还不会一次就删完的解法,但是这种解法存在,等我研究完题解。。。)

例题:CCPC-Wannafly Winter Camp Day2 (Div2, onsite) A Erase Numbers II

例题:CCPC-Wannafly Winter Camp Day2 (Div2, onsite) B Erase Numbers I

例题:CCPC-Wannafly Winter Camp Day4 (Div2, onsite) D 欧拉回路

找规律+推理:

例题:CCPC-Wannafly Winter Camp Day4 (Div2, onsite) G 置置置换 (OEIS大法好)

例题:CCPC-Wannafly Winter Camp Day7 (Div2, onsite) J 强壮的排列(OEIS或推理+泰勒展开)

类似于拓扑排序思想求hash前的序列:

例题:CCPC-Wannafly Winter Camp Day7 (Div2, onsite) E 线性探查法 (这个和牛客多校的一道题几乎一模一样,题解已发)

3、最短路

针对最短路的四种算法及其各种优化(尤其是堆优化的Dijkstra算法)要学会灵活的运用。例如一些最短路的变形,在裸题的基础上给你额外加一些条件,这个时候就要根据题目要求灵活改动代码。当然也有很多题目是先用最短路预处理,再结合其他知识点使用。

例题:CCPC-Wannafly Winter Camp Day1 (Div2, onsite) F 爬爬爬山

4、枚举

这类题通常是直接用一个for枚举答案,然后对每个答案计算它是否符合要求或者计算符合要求时的题目要求的最优值。经常结合STL中的容器来使用(优先队列、栈极为常见)。

例题: CCPC-Wannafly Winter Camp Day1 (Div2, onsite) J 夺宝奇兵

当数据范围变大时,就要考虑各种高级优化了(但是我现在不会。。。)

枚举树边计算贡献,这种题也见过不少了:

例题:CCPC-Wannafly Winter Camp Day5 (Div2, onsite) H Nested Tree

5、计算几何

这种问题一般都是考板子了,关键是要学会灵活运用板子,注意题目中可能挖的坑。。。

例题:CCPC-Wannafly Winter Camp Day2 (Div2, onsite) H Cosmic Cleaner

例题:CCPC-Wannafly Winter Camp Day5 (Div2, onsite) J Special Judge(注意板子的修改)

6、折半后dfs/状压

虽然这种题型见得少,但是确实是见过也做过,不得不感叹。。。但是姿势很关键,因为某些出题人喜欢卡常。这类题型通常数据范围刚好超过n!能通过的复杂度,直接暴力或者状压或者dfs都是不可行的。这个时候利用题目的性质,进行折半,然后两段合并计算答案。(dfs进行各种大力剪枝也可能会卡过去)

例题:CCPC-Wannafly Winter Camp Day2 (Div2, onsite) K Sticks

7、随机数

这种题我已经见过的不少了,答案只是给定范围内的一个数字,如果推不出来也只能去一个一个的试,而且最后成功的几率其实还是很大的。。。

例题:CCPC-Wannafly Winter Camp Day3 (Div2, onsite) A 二十四点*

8、莫比乌斯反演 杜教筛

说实话这类问题我是从来没做过的(但是知道),比赛的时候碰到了,联想到之前遇到过一个求1~n中任意两数的gcd的和,就是莫比乌斯反演做的,于是进行了一点修改就过了,但这次只是现学现用蒙对了,有必要好好补漏一下了。

例题:CCPC-Wannafly Winter Camp Day3 (Div2, onsite) F 小清新数论*

一般的板子都是O(n)的,但是用两次杜教筛可以优化成O(n^(2/3))的,其实还有O(n^(3/4)logn)的,这个根据我个人能力有机会再补吧。

9、读题题

为什么叫读题题呢,因为这类题通常题干非常长,或者包含很多复杂公式,其实只要仔细读完题之后就会发现按照题意稍微模拟一下就可以,或者其实就是一个很简单的知识点,只是背景写的很复杂。

这种题都是歪榜的罪魁祸首。造成的惨案已经不计其数。。。

例题:CCPC-Wannafly Winter Camp Day3 (Div2, onsite) G 排列

例题:CCPC-Wannafly Winter Camp Day4 (Div2, onsite) A 夺宝奇兵 (这个题其实带有一点思维成分,但是乍一看还是不会)

10、路径压缩并查集

这类问题是并查集的典型应用之一,通常是n个物品分为两种类型,给你某两个个体之间的部分关系让你确定全部关系或者计算合理方案总数。注意记录信息以及合并信息。但是我做这种类型的题目做的太少,资料也只是看看没有自己去敲过代码,所以就算知道思路还是比较难写出来。但是这种题目很容易成为铜牌题甚至铜牌以下的题,我需要多加注意。

例题:CCPC-Wannafly Winter Camp Day3 (Div2, onsite) I 石头剪刀布

相关题目: POJ 1182 食物链(并查集:路径压缩) 

11、思维的体操

与一般的思维题不同,这种思维题考察你真正对知识点的理解掌握。对于图论部分,要清晰的知道各种概念定义,以及无向图、树等一些特殊图的性质,再进行相关推理。通常不会太难,但是你反应要快要准,这样罚时上才会有优势。

例题:CCPC-Wannafly Winter Camp Day4 (Div2, onsite) C 最小边覆盖 

下面这道题应该算是思维推理,比赛的时候数据水了导致我1A掉没在意,后来发现/2操作在不超过log(sum(ai))次之后所有数就都变成0了,所以k次/2操作其实不需要用太多次。如果强制在线的话需要用主席树(我当然不会),而且据说出题人还卡了内存。

例题:CCPC-Wannafly Winter Camp Day5 (Div2, onsite) C Division 

下面这道题用bfs序也可以,但是我蠢,没反应过来。

例题:CCPC-Wannafly Winter Camp Day7 (Div2, onsite) A 迷宫

还用到了矩阵乘法:

例题:CCPC-Wannafly Winter Camp Day7 (Div2, onsite) C 斐波那契数列

12、bfs/dfs

一些典型的深搜广搜的题目现在应该已经非常的熟练了,包括一些预处理然后O(1)回答的bfs也见过不少了,再见到应该当签到题了。

例题:CCPC-Wannafly Winter Camp Day4 (Div2, onsite) F 小小马 (这道题我没有第一时间反应过来,而是扔给了队友,惭愧+1)

画一棵树的平面图使边没有交,按bfs序即可。。。

例题:CCPC-Wannafly Winter Camp Day5 (Div2, onsite) A Cactus Draw (这道题我也没有第一时间反应过来,而是扔给了队友,惭愧+2)

13、强连通、双连通分量

像这种求粉丝最多的人的数量这类题,肯定是先缩点,然后找入度为0的强连通分量。。。(注意有时候反向建图)

例题:CCPC-Wannafly Winter Camp Day7 (Div2, onsite) G 抢红包机器人 (其实暴力就可以)

14、思维贪心 排序后dp

拿到这种题我第一反应是排序后dp,因为如果没有时间因素的话,题目显然是可以化成背包问题的,但是还有时间因素的影响,怎么想排序的规则都不对,后来队友想了个规则然后排序贪心就过了。看来还是我不够灵活,没想到这种方法,还需要多加练习。具体分类我还没有明确的选择,暂时单独分出来吧。

例题:CCPC-Wannafly Winter Camp Day4 (Div2, onsite) I 咆咆咆哮

15、位运算、异或运算小技巧

这道题我必须拿出来单独讲一下。

对于任意两个数x,y(x!=y),不妨设x<y 要想使另一个数z使得x^z>y^z的条件是

设 t为 x^y 的最高为1的位(则x的第t位为0,y的第t位为1)

则z的第t位为1。

好好思考一下上述过程。

所以要求1~n中有多少个数能改变x y的大小关系,只需要求有多少个数的第(x^y的最高位)位为1就可以了。

至于怎么求1~n种第k位为1个数字个数,从最高位开始算就行了,具体细节留给读者考虑。这样是O(n*n)的,但是其实可以用分治优化到O(nlogn) (我是肯定不会啦)

例题:CCPC-Wannafly Winter Camp Day7 (Div2, onsite) F 逆序对!

 

二、总结

还是认识到了自己许多知识的欠缺和思维能力的不足,以及一些基础题型反应过慢,这次参加训练营给了我很好的锻炼,让我看到了自己手速的优势,也让我看到了各位真实大佬努力认真的样子。虽然并没有利用好这次机会交几个大佬朋友,但是我相信以后有问题在群里问的话还是会有大佬帮助我的。希望能再接再厉吧。

我发现,所有人都是一样的,都是普通人,但是他们有的是大神,有的却是菜鸡,从他们的精神风貌,以及认真的样子就可以分的清清楚楚,无论来自清华北大还是一些不出名的学校。我们都怀着同样的梦想,只有努力才会提高自己,就像我的校训一样,任何成功都是从零开始的。世界上唯一一种最强的能力,就是学习能力。希望继续努力吧。

---------------------------------------------------------------------------华丽的分割线----------------------------------------------------------------------------

 

1、御品星程宾馆的质量从各种角度上来说都还是十分不错的,4.9星好评,就是浴室的喷头水温不受控制,忽冰忽烫。

2、每天在寒风中游走于本部和南校区,给我们刷步数的好意我们心领了,但是真的很冷!!!

3、早上的饭除了肉包和蛋饼其他的素包子是真的真的真的难吃,讲真我自己包的都没这么难吃!!!

中午吃饭得排队半小时,虽然有老师调整,但是还是很挤,而且位置肯定不够啊,有很多大佬站在窗边吃(据我所知那几个人都是div1大佬)。而且饭菜质量真的特别差,我觉得你就光炒一个土豆都行啊,整那么多菜瞎搭配,当做猪食呢,不知道几天前的食物了都,后来几乎没肉菜了,你看看那鸡肉炒土豆,一勺下去大半骨头,看着就没胃口。。。还不如直接炒土豆,而且你能不能给炒熟了。。。总之午饭和早饭一样体验极差。。。感觉工作人员们都没上心。

晚饭算是最好的了,虽然会有中午的剩菜,但是菜是熟的,也放盐了,我很感动,唯一让我完全满意的可能就是晚饭了吧。所以晚饭还是吃的比较舒服的。

4、秦皇岛的烧烤还挺多,我们队吃了两次(第二次一个大佬队友牙疼没去),两次体验都非常好,撸串真的爽。

5、第六天扑通队集体扑通,牙疼+重感冒+头痛。。。秦皇岛的寒风功不可没。。。

6、讲课环节和讲题环节也是听懂的很少,有机会再观看学习吧。

7、非常感谢wls以及赞助商和王老师,非常有幸能参加这次camp,总体来说体验还是很好的。希望能继续努力,争取不辜负wls的期望。剩下的题目也是尽力补吧。不知道在学校训练的同学们怎么样了,希望能一起进步。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值