二模 (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 ...
随机推荐
- MVC中Html.Listbox的用法实例
要绑定listbox或dropdownlist前提是:必须是SelectItem类,例如: 因为Html.ListBox第二个绑定数据的参数要得类型为SelectList第一种:因为listbox可以 ...
- 【Todo】【读书笔记】大数据Spark企业级实战版 & Scala学习
下了这本<大数据Spark企业级实战版>, 另外还有一本<Spark大数据处理:技术.应用与性能优化(全)> 先看前一篇. 根据书里的前言里面,对于阅读顺序的建议.先看最后的S ...
- Android ViewPager刷新解析
ViewPager刷新解析 原本以为PagerAdapter类似于BaseAdapter 但是使用起来发现刷新还是有区别的 解析如下 先上Demo PagerAdapter的四大函数 getCount ...
- easyui 进度条
进度条创建 $.messager.progress({ title:'请稍后', msg:'正在努力...' }); 进度条关闭 $.messager.progress('close'); 弹窗对话框 ...
- hdu 5755(高斯消元——模线性方程组模板)
PS. 看了大神的题解,发现确实可以用m个未知数的高斯消元做.因为确定了第一行的情况,之后所有行的情况都可以根据第一行推. 这样复杂度直接变成O(m*m*m) 知道了是高斯消元后,其实只要稍加处理,就 ...
- c#动态创建ODBC数据源
使用C#有两种方法可以动态的创建ODBC数据源,这里我用比较常用的SQL2000作为例子. 方法1:直接操作注册表,需要引用Microsoft.Win32命名空间 /// <summary> ...
- python的模式匹配 - 正则表达式
之前学过perl,深知perl在模式匹配方面的强大,现在想完全转到python,虽说python的模式匹配没有perl那么强大,但还是可以用的,只是需要一个熟悉的过程. 参考资料: Python正则表 ...
- 网站后台登录aspcms 提示错误号:-2147467259,错误描述:操作必须使用一个可更新的查询。sql=update AspCms_Content set TimeStatus=0 where TimeStatus=1 and Timeing <= 解决方法。
把data文件夹的权限改下,改成user组可以修改.写入,就好了. 还有一个问题,就是进入后台的时候提示没有访问权限的问题,解决方法看下图
- GitHub学习资料
GitHub账户注册注册了有一年多了(Joined on 13 Apr 2015),一直以来都是本地命令行上传到内网的Git服务器Gitlab.最近正好在学习新的编程语言,所以当初荒废的GitHub想 ...
- BluetoothAdapter.LeScanCallback 参考文档
BluetoothAdapter.LeScanCallback 参考文档 [翻译自: android开发文档] Class Overview:回调接口被用于传输LE扫描后的结果; 详情参看: ...