摘要: 首先最优策略肯定是这样的:我们取出这个序列中的最大值,然后将整个序列分为左右两部分, 那么我们一定先把左右两部分合起来然后再与这个值合并 那么我们可以得出一个基于最值查询(rmq)的的算法,但是zld上次出10^6级别的题目时,卡掉了的算法 所以我们想一个优秀一点的做法,发现这个过程可以简单的用一个单调队列维护,维护单调减的单调栈,就可以O(n)解决这个问题 我们仔细观察会发现更优秀的做... 阅读全文
posted @ 2016-07-31 21:12 zhouyis 阅读(261) 评论(0) 推荐(0) 编辑
摘要: T1: 我们可以用火柴棒来表示十进制下的0~9, 如图所示 现给定火柴数n, 问用这n根火柴能组成的最小数和最大数分别是多少. 所有火柴必须全部用完, 并且所有数字必须是正的且不含前缀零. 【解题】 首先最大数,我们要让位数最多,那么如果n是偶数,那么输出n/2个1,否则就在前面加上个7 然后输出个1 最小的数,有点难办,我们发现前三位都是循环,然后剩下火柴数量都是7的倍数,要使答案... 阅读全文
posted @ 2016-07-31 19:41 zhouyis 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 大坑最后再填。 20160803:心情好回来填啦(5/7) 做的题目是: poj2970 我们先每个人都不给钱qwq 然后我们发现有一位的工作时间超过了d 那么我们就从以前安排过工作的人里,a最大的,给他加上一定量的x,使得后面的这个超出di的工作者可以在di前完成任务,或者他的工作时间已经为0,则继续找剩下的当中a最大的 这个过程用堆维护,时间复杂度O(nlogn) s... 阅读全文
posted @ 2016-07-31 19:24 zhouyis 阅读(134) 评论(0) 推荐(0) 编辑