二模 (1) day2
第一题:
题目大意:
N层楼,K个人,M个箱子在1楼,给出K个人的初始状态(在第几楼,正在向上走还是向下走,向上走的人手里已经有箱子),每次移动一层楼,求把所有箱子(手里拿着的不算在M里)全部搬到顶楼的最少时间。
K≤500000,M≤10^9
解题过程:
1.首先想到可以二分时间t,然后判断在时间t里能否搬完。根据向上走还是向下走分情况讨论每个人在时间t里最多能搬多少个箱子,然后加起来和剩下的箱子比较。初始得分50分,因为输出答案的时候用了printf("%d",ans),而ans是long long类型的。这个方法时间比较慢,最慢的点要0.6s+;
2.优化:对于任何一个人,经过时间2*(N-1) 后,他的状态不变,但是已经把1楼的一个箱子拿上去了。所以每次经过2*(N-1)的时间,底下的箱子就会减少k个;所以可以先把箱子M mod k,任何加上相应的时间。加上这个优化,时间最慢的点只要0.07s左右。
3.标准解法:首先用一下优化2.假设地上还有X个箱子,那么只要找到第X个到底层的人,他到顶层的时间就是总时间。就转换成找第k大问题了。
第二题:
题目大意:
N头奶牛围成一个圈,给出两两之间的距离,求出最远的两头奶牛的距离。奶牛A 到B 的距离为A 顺时针走和逆时针走,到达B的较短路程。
2≤N≤100000
解题过程:
1.先把环断成链,然后枚举起点,二分终点来求从奶牛A出发的最远距离(找到一个B,使得AB的距离尽可能接近总距离sum的一半)。初始得分70分,原因是把环断成链的时候数组应没开两倍大。还有如果A和A后面的第一个点之间的距离d就大于sum/2了,那么结果应该是sum-d。
2.更完美的O(n)算法:对于起点A的最远点是B,如果另外起点C在A的右边(顺时针往后数),那么C的最远点在B的右边(顺时针往后数),前面的算法每次都要二分实际上反而浪费了时间。只要用2个指针,一个表示起点,一个表示终点,起点往后移动,终点也会往后移动。这样最多起点终点各走了一圈,复杂度O(2*n);
第三题:
题目大意:n天,m个码头,e条边,求出n天从1号码头到m号码头的费用。 一些码头在某些天会不能通过。每次改变航线要花费k。n<=100,m<=20
解题过程:
1.一开始看到数据范围比较小,感觉会是贪心或者搜索,但是贪心有后向性,搜索没有给力的剪枝肯定又超时。时间不够想不到更好的算法。初始得分0分。
2.标准算法:动态规划+最短路。
状态转移方程:f [i]=min{dist(1,i)*i,f[j]+dist(j+1,i)*(i-j)+k) (1=<j≤i-1)。
f [i]表示前i天的最小运费,dist(x,y)表示从第x天到第y天从起点到终点的最短路(只要把第x天到第y天的崩溃的码头暂时去掉做最短路);
第一种情况:1到j天都走一条路。
第二种情况:j+l到i天走一条路(这条路记为路径1)。这个时候,不管前j天走的路径。
二模 (1) day2的更多相关文章
- 二模 (8) day2
第一题: 题目描述: 有 n 个炸弹,有些炸弹牵了一根单向引线(也就是说引线只有在这一端能被炸弹点燃),只要引爆了这个炸弹,用引线连接的下一个炸弹也会爆炸.每个炸弹还有个得分,当这个炸弹被引爆后就能得 ...
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- 二模 (9) day2
第一题: 题目大意:求满足条件P的N位二进制数的个数.P:该二进制数有至少3个0或者3个1挨在一起.. N<=20000 解题过程: 1.一开始直接写了个dfs把表打了出来,不过没发现什么规律, ...
- 二模 (16) day1&day2
第一题:题目大意: 数列a[0]=a[1]=1, a[n]=a[n-2]*a[n-1]*n,求a[n]的因子个数 mod 1000000007. n<=1000000 解题过程: 1.递推式还 ...
- 二模 (15)day2
第一题:Alice和Bob两个人正在玩一个游戏,游戏有很多种任务,难度为p的任务(p是正整数),有1/2p 的概率完成并得到2p−1分,如果完成不了,得0分.一开始每人都是0分,从Alice开始轮流做 ...
- 二模 (13)day2
第一题: 题目大意: 给出一个N*M的矩阵,定义一条路径的权值为经过的所有点权值的最大值.求一条从第一行到第N行的路径,使得路径权值最小. N,M<=1000 矩阵内点的权值小于1000. 解题 ...
- 又是一个二模02,不过day2
话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...
- 二模Day2题解
小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...
- 二模 (12)day2
第一题: 题目大意: 有N颗糖,两个人轮流取,每次只能取质数颗,不能取的输.求先取者若必胜,最少需要多少步胜利.(N<=10000) 解题过程: 1.看到N的范围比较小,先打个素数表,然后dp即 ...
- 二模 (11) day2
第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...
随机推荐
- Java List实体类去重
版权声明:本文为博主原创文章,未经博主允许不得转载. List特点:元素有放入顺序,元素可重复 Map特点:元素按键值对存储,无放入顺序 Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入 ...
- Python学习笔记16—电子表格
openpyl 模块是解决 Microsoft Excel 2007/2010 之类版本中扩展名是 Excel 2010 xlsx/xlsm/xltx/xltm 的文件的读写的第三方库. 安装 pip ...
- Java开发中的一些小技巧
原文:http://www.cnblogs.com/xdp-gacl/p/3490276.html 一. Java获取URL地址中传递的参数 /** * 获取URL中的参数名和参数值的Map集合 * ...
- 转:Singleton模式
C++完美实现Singleton模式 转自:http://www.cppblog.com/dyj057/archive/2005/09/20/346.html boost库的Singleton的实现 ...
- 转 : c++ 结构体 前向声明
typedef struct tag_guid { ULONGLONG utime; ULONGLONG umac; }tpguid; class A { private: int m_teset1; ...
- LINUX多线程(一)(创建和退出)
1. Linux多线程概述 1.1. 概述 进程是系统中程序执行和资源分配的基本单位.每个进程有自己的数据段.代码段和堆栈段.这就造成进程在进行切换等操作时都需要有比较负责的上下文切换等动作.为了进一 ...
- 探索 Pexpect,第 1 部分:剖析 Pexpect
Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块. Pexpect 可以用来和像 ssh.ftp.passwd.telnet 等命令行程序进行自动交互.本文章介绍 Pexp ...
- hiho_1044 状态压缩
题目大意 给定N个位置,每个位置i都有一个value[i]值,从中选择若干个位置,使得连续的M个位置中的被选中的位置数目不超过Q,求出所有选择方案中value和最大的方案,输出其最大value和. 分 ...
- Python核心编程-描述符
python中,什么描述符.描述符就是实现了"__get__"."__set__"或"__delete__" 方法中至少一个的对象.什么是非 ...
- Unity3D Mecanim 动画系统骨骼动画问题解决方法
http://7dot9.com/2014/08/16/unity3d-mecanim%E5%8A%A8%E7%94%BB%E7%B3%BB%E7%BB%9F%E9%AA%A8%E9%AA%BC%E5 ...