小明搬家

题目描述

小明要搬家了,大家都来帮忙。

小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼。

最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了。最后大家发现这样混乱地搬运过程效率太低了,于是总结出了提高效率的方法。

大家的速度都是每分钟上(或下)一层楼。所有向上走的人手中都拿一个箱子,所有向下走的人手中都不拿箱子。到达第N层立刻放下箱子向下走,到达第1层立刻拿起箱子向上走。当一个人向上走,另一人向下走而在楼道里相遇时,向上走的人将手中的箱子交给另一人,两人同时反向。即原来拿箱子向上走的人不拿箱子向下走,原来不拿箱子向下走的人现拿着箱子向上走。 求将所有箱子搬完所需的最短时间。

输入

第一行N(N≤10^9),K(K≤500000),M(M≤10^9),分别表示楼层数、人数、还放在一楼地上的箱子数。

接下来K行,每行两个数Ai,Bi。

Ai表示第i人现所在的楼层数,Bi为0或1,为0表示第i人正拿着箱子向上走,为1表示第i人不拿箱子向下走。

输入满足没有任意两人正在同一楼层,在第1层的人一定正拿着箱子向上走,在第N层的人一定正不拿箱子向下走。

输出

仅包含一个整数,为搬完箱子的时间。

题解

这道题乍一看是没有头绪的。。。这道题目的要求很奇怪,似乎要用动态规划来做。但是又想不出来怎么动归,怎么办呢?

注意一开始有m个箱子,k个搬运工,楼高是n层。要把一个箱子从一楼搬到n楼明显要搬n-1楼,因为无论怎么样,都需要花费一个人的人力上到n层,再下来,那么就相当于一个人搬上搬下一次,多人搬运一件物品并不会减少时间。先忽略每个人手中已有的盒子数,那么要等到人都下到1层才能开始搬运,这时可以计算出从初始状态开始分别需要多少时间每个人都回到1层,记为delay[i]=eval('measure how many minutes %d-th worker is going back to the first floor',i)。

从这时开始,过2(n-1)分钟就可以运走k个盒子,最后一个运走盒子的搬运工的delay值就是delay[m mod k]。最后的答案就是2 floor(m/k)(n-1)+delay[m mod k],delay[0]=delay[m]-2(n-1)

圆圈舞蹈

题目描述

熊大妈的奶牛在时针的带领下,围成了一个圆圈跳舞。由于没有严格的教育,奶牛们之间的间隔不一致。

奶牛想知道两只最远的奶牛到底隔了多远。奶牛A到B的距离为A顺时针走和逆时针走,到达B的较短路程。告诉你相邻两个奶牛间的距离,请你告诉奶牛两只最远的奶牛 到底隔了多远。

输入

第一行一个整数N,表示有N只奶牛。(2≤N≤100000)

接下来2~N+1行,第I行有一个数,表示第I-1头奶牛顺时针到第I头奶牛的距离。(1≤距离≤maxlongint,距离和≤maxlongint)

第N+l行的数表示第N头奶牛顺时针到第1头奶牛的距离。

输出

一行,表示最大距离。

题解

最简单的解法当然是模拟了。纯模拟的时间复杂度为O(n3),这道题数据很大,过不了。有一点简单的优化是前缀和优化,可以把复杂度降到O(n2)。很可惜,还是过不了。

想想有没有别的办法?可不可以先二份答案再检验是否可行?如何检验?枚举起点,二分中点。(你可以试试这个办法)这个时间复杂度为O(n log22 n)。但是既然都这么检验了,干嘛不直接输出解?时间复杂度为O(n log2 n)。这时已经可以过了。还能再优化吗?

注意到我们只是要找最大的距离,就维护一个头指针指向当前扫描到的牛,尾指针指向离他最远的牛。显然当我们处理过i-1号牛后,头与尾的距离缩短了。试试此时头尾的距离值是不是比dist(head,tail+1)小。如果是的,就++tail,反复做下去直到不是为止。将这时的dist(head,tail)和maxDist比较并更新maxDist的值。tail和head的值都小于等于n,相当于这两个指针各走了一圈。时间复杂度O(n)。

物流运输(BZOJ 1003)

我都不敢相信这是一道ZJOI的题目,毁三观的难度。。。

就是一个简单的最短路+DP,不过不大好写。

F[i]=min{(for all F[j] which{0<j<i} + Dist(1,e){while applying all point ignoring between day j and day i}*(i-j)+k),dist(1,e){w a a p i b d 1 a d i}}

二模Day2题解的更多相关文章

  1. 二模 (8) day2

    第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...

  2. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  3. [18/12/3]蓝桥杯 练习系统 入门级别 Fibonacci数列求模问题 题解思路

    前言略. 看到这个题目本来应该很高兴的,因为什么,因为太TM的基础了啊! 可是当你用常规方法尝试提交OJ时你会发现..hhh...运行超时..(开心地摇起了呆毛 //Fibonacci数列递归一般问题 ...

  4. 二模 (13)day2

    第一题: 题目大意: 给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小. N,M<=1000 矩阵内点的权值小于1000. 解题 ...

  5. 二模 (12)day2

    第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...

  6. 二模 (9) day2

    第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律, ...

  7. 二模 (3) day2

    第一题: 题目大意:(难以概括,就不贴了把.) 解题过程: 1.担心被精度问题恶心,就把平均数的地方乘了N,这样只有最后计算的时候才会是小数.. 2.数组保存的时候蛋疼的 没改成double.结果全部 ...

  8. 二模 (16) day1&day2

    第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007.  n<=1000000 解题过程: 1.递推式还 ...

  9. 二模 (15)day2

    第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...

随机推荐

  1. python 读写文件和设置文件的字符编码

    一. python打开文件代码如下: f = open("d:\test.txt", "w") 说明:第一个参数是文件名称,包括路径:第二个参数是打开的模式mo ...

  2. emmet 缩写API

    http://docs.emmet.io/cheat-sheet/

  3. Java设计模式-工厂方法模式(Factory Method)

    工厂方法模式(Factory Method) 工厂模式适合:凡是出现了大量的产品需要创建,并且具有共同的接口时,可以通过工厂方法模式进行创建.在以下的三种模式中,第一种如果传入的字符串有误,不能正确创 ...

  4. 详解Java中ArrayList、Vector、LinkedList三者的异同点

    转载:https://my.oschina.net/zzw922cn/blog/491631 一.ArrayList ArrayList是一个可以处理变长数组的类型,这里不局限于"数&quo ...

  5. 【HDU 2160】母猪的故事

    题 Description 话说现在猪肉价格这么贵,著名的ACBoy 0068 也开始了养猪生活.说来也奇怪,他养的猪一出生第二天开始就能每天中午生一只小猪,而且生下来的竟然都是母猪. 不过光生小猪也 ...

  6. Oracle自定义函数

    核心提示:函数用于返回特定数据.执行时得找一个变量接收函数的返回值; 语法如下: create or replace function function_name ( argu1 [mode1] da ...

  7. myEclipse中新建的项目导入到Eclipse之后项目出现一个红色的叉叉

    1.在eclipse中打开Problems,然后看看报哪些错,

  8. 移动H5页面,keyup事件不好使用处理解决

    1.mouse事件换成touch,pointer事件,keyup换成textInput事件

  9. SQLServer错误:过程 sp_addextendedproperty,第 xxx 行对象无效。'dbo.xxx.xxx' 不允许有扩展属性,或对象不存在。

    上传数据库到虚拟主机,在执行SQL脚本的时候出现以下的错误: 消息 15135,级别 16,状态 8,过程 sp_addextendedproperty,第 37 行 对象无效.'dbo.Messag ...

  10. 笔记:PHP查询mysql数据后中文字符乱码

    新建表Clubs CREATE TABLE `Clubs` ( `id` ) NOT NULL AUTO_INCREMENT, `name` ) CHARACTER SET utf8 NOT NULL ...