记录一条咸鱼的第二次参加ccf认证之旅


(博主只是一个蒟蒻,图论和高级数据结构都不会,模拟题也不会,而这恰好是ccf考得最多的。。。所以考前就做好了不过的准备,没想到最后250飘过2333。最后申明,ccf的正经题解在这里你是看不到的)

第一题

向来是签到题,大意是饮料十块钱一瓶,买五瓶送两瓶,买三瓶送一瓶,问n元钱最多能买到多少瓶。简单分析即可知买五送二优于买三送一优于其他购买方式。先将n分解,n=50*s1+30*s2+10*s3,然后只需先考虑s1再考虑s2最后考虑s3就行,就不贴代码了。

第二题

通常也是签到题,这次的第二题也差不太多,可能比前几次略难一点,但是事实上也是直接按时间暴力就能过的小模拟。题意就不多说了,题目还没放出来呢。说说我的心路历程吧:第一眼,按时间暴力啊!写到一半,要不找一个快点的方法?然后。。。限于才疏学浅,钻了牛角尖,导致最后的代码连自己造的数据都过不了,加上时间不多,连暴力都没写就去开第四题了。。。(第二题只拿了20分的咸鱼一条QAQ)

第三题

没看,从第二题就能看出,本人代码能力十分差劲,脑子也有坑,因此向来是不敢挑战模拟题的。

第四题

给出一个有向图,n个点,m条边。对于图中的i和j两个点,如果存在一条路径,使得i可以到j或者j可以到i,就说明这两个点有关系,问图中与所有点都有关系的点的个数。其中n<=1000,m<=10000。

我通常是不写图论题的,这块也不是我负责的,但是两个队友已经提前交卷走人了,剩下啥都不会的我在那里抓耳挠腮,最后索性破罐子破摔——干脆遍历n个点,每个点求一个最短路(建图时让每条边长为1就行了),只要dis[i][j]和dis[j][i]中有一个不是INF就说明二者有关系。最短路用的dij+优先队列板子,时间复杂度mlogm,所以总时间复杂度是(nmlogm),起初我以为不能过全部数据,花了几十分钟敲完并过了样例和自己造的数据,想着骗个60分也不错。(很惭愧,当时连1s能过什么规模的算法都不知道。。。所以最后知道自己第四题满分的时候我是惊呆了的!)

第五题

给出n个数字和m次询问,询问分为1 l r v(表示将区间[l,r]中的所有v的倍数除以v),2 l r(表示查询[l,r]的区间和);

乍一看,区间修改,区间查询,线段树?恰好带了线段树区间修改的板子。然后仔细一想,却发现带lazy标记的线段树并不可做,因为修改的是区间内部分点,而非整个区间,因此只能单点修改。(当然肯定有办法优化,但是咸鱼我不会啊QwQ)最后为了骗分自己敲了个单点修改区间查询的线段树(事实上树状数组写起来要短不少),成功骗到了30分。

第二天成绩出来:

第一题 100 第二题 20 第三题 0 第四题 100 第五题 30 总分 250

总之250万岁hhh

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值