第一题:

题目大意:

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的更多相关文章

  1. 二模 (8) day2

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

  2. 二模13day1解题报告

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

  3. 二模 (9) day2

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

  4. 二模 (16) day1&day2

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

  5. 二模 (15)day2

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

  6. 二模 (13)day2

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

  7. 又是一个二模02,不过day2

    话说比较简单.除了第三题不会写平衡树啊你妹!!边做边写吧. 机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链接~机智的链 ...

  8. 二模Day2题解

    小明搬家 题目描述 小明要搬家了,大家都来帮忙. 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼. 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了.最后大家发现这样混乱地搬运过程效率太 ...

  9. 二模 (12)day2

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

  10. 二模 (11) day2

    第一题: 题目大意: 有一本n个单词的字典,其中每个单词的长度不超过4且大于0.现在给你一篇文章,文章中没有分隔符,只有小写字母.现在需要你修改最少的字母,使文章(长度为m 是由字典中的单词构成. n ...

随机推荐

  1. 前端代码新写法——Zen Coding

    是不是还在为html繁琐的标签写法而苦恼? 是不是还在枯燥的写尖括号? Zen Coding的到来将让前端编码不在繁琐.不再拘泥html的尖括号和一堆一堆的标签. 先看看ZenCoding的效果图. ...

  2. poj1755Triathlon(半平面交)

    链接 根据题意可以设三段路程分别为A,B,C 那么总时间t = A/V+B/U+C/W. 这样根据时间大小关系可以跟其余n-1个联立形成n-1个方程. 化简后为A(1/vj-1/vi)+B(1/uj- ...

  3. HTML5 学习笔记--------》HTML5概要与新增标签!

      一.HTML5概要 1.1.为什么需要HTML5 HTML4陈旧不能满足日益发展的互联网需要,特别是移动互联网.为了增强浏览器功能Flash被广泛使用,但安全与稳定堪忧,不适合在移动端使用(耗电. ...

  4. poj 1144 Network(无向图求割顶数)

    题目链接:poj 1144 题意就是说有 n(标号为 1 ~ n)个网点连接成的一个网络,critical places 表示删去后使得图不连通的顶点,也就是割顶,求图中割顶的个数. 直接上大白书上的 ...

  5. C++—函数

    一.函数的基本知识 要使用C++函数,必须完成一下工作: (1)提供函数定义: (2)提供函数原型: (3)调用函数. 1.定义函数 可以将函数分为两类,有返回值的函数和没有返回值的函数.没有返回值的 ...

  6. Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记

    原文:http://blog.csdn.net/lifuxiangcaohui/article/details/37659905 一直用tomcat一段时间都正常无事,最近一次启动tomcat就发生以 ...

  7. jquery中html(), text(),val()区别(zhuan)

    https://zhidao.baidu.com/question/307317838.html http://www.cnblogs.com/aqbyygyyga/archive/2011/11/0 ...

  8. Hbase之测试数据

    info ship user name age height phone addr email dept salary create 'user','info','ship'; put 'user', ...

  9. 为什么删不掉date模块

    显示是field pending deletion一看report里面的field list并没有xxx_date_xxx,只好跑到数据库才看到一个field_date_test当时并没有把这个字段当 ...

  10. [ 转]Android快速开发–使用ORMLite操作数据库

    OrmLite是一个数据库操作辅助的开源框架,主要面向Java语言.在Android面向数据库开发中,是一个比较流行的开源框架,方便操作而且功能强大,今天来学习一下,最近的项目中也有所涉及,写个博客来 ...