学习日记12

来源:互联网 发布:avr单片机 编辑:程序博客网 时间:2024/06/07 06:41

      今天中午做了一下二分和队列的题。首先是一道关于把衣服晾干的题,这道题中衣服一分钟掉一单位的水,吹风机一分钟掉k单位的水,但是这k单位包含自然风干的一单位的水,这是最坑爹的,在这里很容易出错,在这里,自然是二分时间,然后看看是否能够晾干,再分情况赋值,值得一提的是这里要向上取整。在整数运算中a/b的向上取整为(a+b-1)/b。这样这道题就可以ac了。还做了一个单调队列的简单题。题目是羊的身高不一样,羊从左向右站着,只能看到在自己前面并且比自己低的羊。问每只羊看到的羊的加和是多少,这道题和例题的求矩形面积有相似点,当然这个题只是求矩形面积的小小的一部分内容,只是求一点向一个方向的连续的点的数量并求和,在题量上,和求矩形面积没法比。这个题只需要一个单调队列,不断维护,并顺便求出和便好了。

     下午杭电有比赛的,先是看了点知识点,熟悉熟悉,发现,队列掌握的不是很熟悉,因为有时候单调队列中会遇到数组嵌套的情况,但有时候又不一定需要这样做,所以很难把握这个,一般就用最基础的形态就能应付很多题,那个嵌套很多的,我模拟了一遍数据,感觉不用这个也能实现,只要理解好了,怎么写是看自己当时的想法了。然后忽然发现杭电的历史记录可以查看题,于是我就找了一道题来做。这道题的意思大概是,有一个只有1和0组成的矩形,问最大的矩形(全部由1组成的矩形)的面积是多少。这道题刚开始是没思路的,后来被人提醒,想起在学习dp时,曾经遇到过矩形求最大n子段和问题,用的状态压缩,这里也可以用这个,把矩形压缩成一条线,然后的过程,就是例题求矩形面积了,不过这里要求n遍,因为每行都要压缩,每行都要求一遍。于是这个题变得就简单多了,这个题值得说一下的是,这个题我为了防止TLE,输入输出用的scanf,printf。但是后来发现这样做会超时,但是用cin,cout,反而通过了,这不符合常理啊。这里一定要记住,有时间好好研究研究,这到底是怎么回事。

    今天已经周六了,明天可以休息一下了。做了这么长时间的题,确实有些小累。

原创粉丝点击