翻车记之2018.7.27

翻车记之2018.7.27

啦啦啦,精彩的一天从打卡开始.看!一个红通通的小吉,然后这“幸运而又快乐”的一天即将到来~~~
清晨的我迎着一股热血,开始了这天早上的考试,边考边流,头都不敢往下低,在用鼻子看题,学了这么些年,头一次碰到题看不懂的情况,而且是老师讲解后都还没听懂,这注定着今天我必炸
好了不多说了,先看做题时的

心路历程:

打开 problem p r o b l e m 文件,看有四个题,好久没考过了,都是三个题的,看第一题,好像还挺水的,一个模拟对比就可以了,转战第二题,乍一眼一看还有一点像组合数学题,但是推了大概半个多钟头都一无所获,便开始走向爆零之路,敲了个爆搜过了样例就没管了,进入下一题,看题就从九点一直看到十点钟然而还是没看懂,我都开始怀疑我的智商了,问了教练,然并卵,在教练看题的时候果断进入下一题……一看SB题,这不一个前缀和就直接搞定了吗?等我做完第三题再来做,然后就只剩下了十分钟,后果可想而知……

做题顺序:

手机 (phone) > — > 烧饼(cake) > — > 兔子(rabbit) > — > 洋娃娃(yww)

考试分析

T1.手机(phone)

【问题描述】

小明有个手机,手机键盘是诺基亚那样的: 为了用这个手机键盘输入一个字母,需要按照要求按某些键多次。更具体地,你如果需要按出的字母是某个数字键的第一个字母,你只需要按一下,如果是第二个字母,你需要按两下 。例如我们输入一个gift,我们要这么输入g-4,i-444,f-333,t-8。健健发现一种新的软件使得输入文字更容易,因为你不需要按好几下按出一个字母,只是按一下,例如按 2 ,就能代表“abc”三个字母中任意一个。这个软件会从字典中尝试找出你想输入什么词。健健想要测试一下这个新软件,心里知道手机中的整个词典,这个词典由 N 个单词组成,单词的总长度不超过1,000,000个英文小写字母。他至多会给出1000个按键的总长度,他希望知道,如果使用手机的九键输入法,有多少个字典中的单词能够被映射到给定的按键数组。

【题面概述】

就是给你 N N 个小写字母串,每一个小写字母又对应着一个数,最后再给你一串书,然后问你翻译过来的字母串有几个是跟数字串一致的。

【算法分析】

呵呵毫无任何技术,就是个模拟,可以直接字符比对,也可以将字母转化成数再用数比对,还可以打一个常数表然后比,方法很多,尽管这是个水题……

T2.烧饼(cake)

【问题描述】

深得所有人喜欢的帅帅最近新开了一家帅帅烧饼店,是中国最有特色的烧饼店。帅帅尝
试着做出更多品种的烧饼,他有 N 种烧饼添加剂,并把它们从 1 到 N 标号。通过把不同种的添加剂混在一起,可以做出很多品种的烧饼。不幸的是,有的添加剂是不能混用,这样会引起食物中毒。 己知不能在放在同一个烧饼的添加剂有 M 对。帅帅想要知道他最多能够制作多少种帅帅烧饼,帮助他回答这个问题,两种帅帅烧饼不一样当且仅当组成两种烧饼的添加剂有区别(一种帅帅烧饼可以不包含任何添加剂)。

【题面概述】

就是在问有多少种组合满足不冲突。

【算法分析】

好像就是一个爆搜就好了(反正时间上也过得去,然后主要是因为我想了好久的组合公式发现根本就推不出来,正着推倒着推都没用,刚开始想先建一张完全图在删掉不符题意的边,再用边点组合来写,发现一点点规律都没有,然后又开始倒着推用完全图减掉不符的情况,发现没有那么简单,想着用容斥原理来做,发现还跟点的个数有关,果断放弃,打个暴力算了)

T3.兔子(rabbit)

【问题描述】

痴痴有n只兔子,他每天喂它们吃许多水果蔬菜。兔子最爱吃的是草莓,但是草莓很
贵啊。所以,外号小小抠的痴痴决定只给一部分兔子吃草莓。 痴痴给兔子编号 1..n,痴痴制定了一个分配草莓的方案(如下文)。 假设今天痴痴买了 s 个草莓,然后他先选了兔子 A 吃第 1 个草莓,那么兔子 A+1 就要吃第2个草莓,兔子A+2要吃第3个草莓,, 每只兔子都分配有一个本来是空的的火柴盒,这 n个火柴盒排成一排。 定义k,{k=max(l),l*l<=n}.从第一个开始数起,每 k个火柴盒旁边会有一个杯子。K个连续的火柴盒和1个杯子形成一个区间。 在给完草莓后,痴痴会往每一只得到一个今天的草莓的兔子的火柴盒里放一根火柴,如果一个区间里面所有的火柴盒都要放一根火柴的话,他就只会在这个区间的杯子里放一根火柴而不是所有火柴盒里。 显然,一只兔子得到的草莓数量就是自己火柴盒里火柴数量加上自己所在区间的杯子的火柴数量。
任务:写一个程序模拟痴痴分草莓的过程,给定兔子个数 n,天数m,每天的 s和A。输出
每天痴痴放了火柴的杯子里和火柴盒里的火柴的总数量。更抽象一点说设如果某天痴痴
火柴的火柴盒和杯子的集合为 S,那么你要输出的这天的 ANS 为 S 中所有火柴盒和杯子中火柴的总和。
注意:每天过后火柴盒和杯子里的火柴不会清空。

【题面概述】

我自己到现在都还没有搞清楚到底是怎么回事,哎~~~

但愿哪位dalao可以跟我解释一下

【算法分析】

算了!

T4.洋娃娃(yww???)

【问题描述】

洋洋最近一直在买洋娃娃。她一直对尽可能便宜的购买感兴趣,她每一天都在跟踪洋娃
娃的价格,她的价格清单包括过去 N 天洋娃娃的价格,Ai 代表第 i 天洋娃娃的价格,洋洋认为通过研究连续几天娃娃价格的平均数可以预测以后的娃娃价格。现在洋洋想让你帮忙找出:“对于给定的P,过去的N天有多少个不同的连续子序列的平均值大于或者等于 P” 两个连续子序列被认为是不同的,当且仅当它们开始或者结束时位置不同的。

【题面概述】

要求一个序列中有几个连续子序列的平均值不小于P

【算法分析】

用前缀和来存储,每一个数都预先减掉 P P <script type="math/tex" id="MathJax-Element-59">P</script>,之后就只要比较数组前后之差为正还是为负即可,若为正,即答案加一,那么题目就转变成了一个求逆序对的题,可以用归并或树状数组,再用数对总数减去逆序对数即可.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值